2019 Q4 Form 10-K Financial Statement

#000156459020006450 Filed on February 25, 2020

View on sec.gov

Income Statement

Concept 2019 Q4 2019 Q3 2019 Q2
Revenue $72.73M $70.93M $68.53M
YoY Change 11.57% 12.82% 12.18%
Cost Of Revenue $23.91M $23.26M $23.70M
YoY Change 12.89% 13.97% 16.17%
Gross Profit $48.82M $47.67M $44.83M
YoY Change 10.93% 12.27% 10.17%
Gross Profit Margin 67.13% 67.2% 65.42%
Selling, General & Admin $28.78M $27.66M $27.72M
YoY Change 1.77% -1.65% -2.39%
% of Gross Profit 58.95% 58.03% 61.83%
Research & Development $7.860M $7.743M $6.509M
YoY Change 20.55% 50.47% 22.97%
% of Gross Profit 16.1% 16.24% 14.52%
Depreciation & Amortization $4.400M $4.150M $3.950M
YoY Change 34.15% 35.62% 26.2%
% of Gross Profit 9.01% 8.71% 8.81%
Operating Expenses $38.06M $36.73M $6.509M
YoY Change 6.31% 7.4% -81.26%
Operating Profit $10.76M $10.93M $9.330M
YoY Change 31.12% 32.41% 56.41%
Interest Expense $710.0K $840.0K $810.0K
YoY Change -4.05% 33.33% 47.27%
% of Operating Profit 6.6% 7.68% 8.68%
Other Income/Expense, Net $320.0K $700.0K $1.453M
YoY Change -277.78% 71.15% 283.38%
Pretax Income $11.80M $11.63M $10.78M
YoY Change 34.55% 34.24% 69.97%
Income Tax $2.640M $2.692M $1.987M
% Of Pretax Income 22.37% 23.14% 18.43%
Net Earnings $9.162M $8.941M $8.796M
YoY Change 28.3% 10.92% 62.41%
Net Earnings / Revenue 12.6% 12.61% 12.84%
Basic Earnings Per Share $0.26 $0.25
Diluted Earnings Per Share $0.25 $0.25 $0.24
COMMON SHARES
Basic Shares Outstanding 34.84M 35.02M 35.01M
Diluted Shares Outstanding 35.93M 36.02M

Balance Sheet

Concept 2019 Q4 2019 Q3 2019 Q2
SHORT-TERM ASSETS
Cash & Short-Term Investments $213.5M $201.2M $198.7M
YoY Change 19.67% 6.23% 15.06%
Cash & Equivalents $179.3M $149.7M $147.0M
Short-Term Investments $34.30M $51.40M $51.70M
Other Short-Term Assets $11.28M $8.385M $8.265M
YoY Change 22.21% 26.8% -78.81%
Inventory
Prepaid Expenses
Receivables $31.53M $29.38M $30.75M
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $291.6M $273.5M $272.8M
YoY Change 16.83% 6.66% 13.7%
LONG-TERM ASSETS
Property, Plant & Equipment $23.75M $20.76M $20.60M
YoY Change 13.34% 7.17% 13.8%
Goodwill $76.85M $76.37M $70.30M
YoY Change 10.32% 51.21%
Intangibles
YoY Change
Long-Term Investments
YoY Change
Other Assets $2.513M $2.621M $2.452M
YoY Change 45.85% 53.27% -89.78%
Total Long-Term Assets $155.8M $153.1M $145.8M
YoY Change 14.15% 36.65% 30.44%
TOTAL ASSETS
Total Short-Term Assets $291.6M $273.5M $272.8M
Total Long-Term Assets $155.8M $153.1M $145.8M
Total Assets $447.4M $426.6M $418.6M
YoY Change 15.88% 15.78% 19.02%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $4.274M $4.367M $3.708M
YoY Change -3.74% 13.34% 0.22%
Accrued Expenses $6.207M $4.874M $4.964M
YoY Change 36.18% 22.59% -74.01%
Deferred Revenue $31.46M $30.35M $30.38M
YoY Change 24.22% 21.66%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due
YoY Change
Total Short-Term Liabilities $68.03M $60.53M $58.40M
YoY Change 20.36% 21.86% 20.66%
LONG-TERM LIABILITIES
Long-Term Debt $0.00 $0.00 $0.00
YoY Change
Other Long-Term Liabilities $405.0K $1.002M $1.024M
YoY Change -70.39% -85.04% -85.16%
Total Long-Term Liabilities $405.0K $1.002M $1.024M
YoY Change -70.39% -85.04% -85.16%
TOTAL LIABILITIES
Total Short-Term Liabilities $68.03M $60.53M $58.40M
Total Long-Term Liabilities $405.0K $1.002M $1.024M
Total Liabilities $92.56M $81.53M $80.27M
YoY Change 37.85% 40.84% 40.83%
SHAREHOLDERS EQUITY
Retained Earnings $48.97M $39.81M $30.87M
YoY Change 220.9% 390.28% 52222.03%
Common Stock $354.2M $349.1M $344.3M
YoY Change 6.48% 7.88% 9.68%
Preferred Stock
YoY Change
Treasury Stock (at cost)
YoY Change
Treasury Stock Shares
Shareholders Equity $354.9M $345.1M $338.3M
YoY Change
Total Liabilities & Shareholders Equity $447.4M $426.6M $418.6M
YoY Change 15.88% 15.78% 19.03%

Cashflow Statement

Concept 2019 Q4 2019 Q3 2019 Q2
OPERATING ACTIVITIES
Net Income $9.162M $8.941M $8.796M
YoY Change 28.3% 10.92% 62.41%
Depreciation, Depletion And Amortization $4.400M $4.150M $3.950M
YoY Change 34.15% 35.62% 26.2%
Cash From Operating Activities $20.83M $21.30M $19.46M
YoY Change 19.23% 39.22% 50.85%
INVESTING ACTIVITIES
Capital Expenditures -$5.200M -$3.040M -$2.450M
YoY Change 34.37% -10.59% -5.77%
Acquisitions
YoY Change
Other Investing Activities $17.51M -$11.42M -$9.600M
YoY Change -179.95% -526.12% 104.69%
Cash From Investing Activities $12.32M -$14.46M -$12.05M
YoY Change -147.79% 1936.62% 65.29%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net
YoY Change
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities -3.600M -4.020M -4.030M
YoY Change 41.18% -185.9% 437.33%
NET CHANGE
Cash From Operating Activities 20.83M 21.30M 19.46M
Cash From Investing Activities 12.32M -14.46M -12.05M
Cash From Financing Activities -3.600M -4.020M -4.030M
Net Change In Cash 29.55M 2.820M 3.380M
YoY Change -372.1% -85.37% -30.45%
FREE CASH FLOW
Cash From Operating Activities $20.83M $21.30M $19.46M
Capital Expenditures -$5.200M -$3.040M -$2.450M
Free Cash Flow $26.03M $24.34M $21.91M
YoY Change 21.98% 30.16% 41.35%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q4 us-gaap Liabilities
Liabilities
92564000
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.001
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
55000000
CY2019Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.001
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
36104619
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
34863271
CY2019 dei Document Annual Report
DocumentAnnualReport
true
CY2019 dei Document Transition Report
DocumentTransitionReport
false
CY2019 dei Entity File Number
EntityFileNumber
001-34702
CY2019 dei Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
DE
CY2019 dei Entity Tax Identification Number
EntityTaxIdentificationNumber
41-2015127
CY2018Q4 us-gaap Other Assets Current
OtherAssetsCurrent
9229000
CY2018Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2018Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
133859000
CY2018Q4 us-gaap Short Term Investments
ShortTermInvestments
44537000
CY2018Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
386123000
CY2017 us-gaap Cost Of Revenue
CostOfRevenue
73625000
CY2018 us-gaap Gross Profit
GrossProfit
166492000
CY2017 us-gaap Gross Profit
GrossProfit
146460000
CY2019 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
70140000
CY2018Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
20957000
CY2018Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
27488000
CY2018Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
34502000
CY2018Q4 us-gaap Assets Current
AssetsCurrent
249615000
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-3218000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
318974000
CY2018Q4 us-gaap Common Stock Value
CommonStockValue
36000
CY2018Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
25679000
CY2018Q4 us-gaap Liabilities
Liabilities
67149000
CY2018Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
332574000
CY2018Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
15261000
CY2019Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
1241348
CY2019Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
46297000
CY2019Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
354115000
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
48973000
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1951000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
354876000
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
447440000
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
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
92239000
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3664000
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
1609000
CY2017 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
712000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
42070000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
28340000
CY2017 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
10693000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2017 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
10342000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2017 us-gaap Net Income Loss
NetIncomeLoss
351000
CY2019 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
1290000
CY2018 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
-3999000
CY2017 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
3944000
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
367000
CY2018 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
397000
CY2018 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Net Of Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
273000
CY2017 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Net Of Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
-39000
CY2017 us-gaap Net Income Loss
NetIncomeLoss
351000
CY2019 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
44719000
CY2018 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
71719000
CY2017 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
71261000
CY2019 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
28305000
CY2018 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
22087000
CY2017 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
9616000
CY2017 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
7208000
CY2017 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
4574000
CY2017 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
1705000
CY2017 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
15000
CY2017 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
5586000
CY2017 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
7813000
CY2017 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
-393000
CY2017 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
832000
CY2017 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
1304000
CY2017 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
1192000
CY2017 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
5588000
CY2017 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
31050000
CY2017 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
7271000
CY2017 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
47878000
CY2017 us-gaap Proceeds From Sale And Maturity Of Available For Sale Securities
ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities
33029000
CY2019 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
2269000
CY2019 spsc Stock Issued During Period Value Restricted Stock And Stock Options Exercised
StockIssuedDuringPeriodValueRestrictedStockAndStockOptionsExercised
6207000
CY2018Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22741000
CY2019Q4 us-gaap Deferred Costs
DeferredCosts
11667000
CY2018Q4 us-gaap Deferred Costs
DeferredCosts
10973000
CY2019Q4 us-gaap Deferred Tax Assets Net Noncurrent
DeferredTaxAssetsNetNoncurrent
2630000
CY2018Q4 us-gaap Deferred Tax Assets Net Noncurrent
DeferredTaxAssetsNetNoncurrent
10456000
CY2019 dei Entity Address Address Line1
EntityAddressAddressLine1
333 South Seventh Street
CY2019 dei Entity Address Address Line2
EntityAddressAddressLine2
Suite 1000
CY2019 dei Entity Address City Or Town
EntityAddressCityOrTown
Minneapolis
CY2019 dei Entity Address State Or Province
EntityAddressStateOrProvince
MN
CY2019 dei Entity Address Postal Zip Code
EntityAddressPostalZipCode
55402
CY2019 dei City Area Code
CityAreaCode
612
CY2019 dei Local Phone Number
LocalPhoneNumber
435-9400
CY2019 dei Security12b Title
Security12bTitle
Common Stock, par value $0.001 per share
CY2019 dei Security Exchange Name
SecurityExchangeName
NASDAQ
CY2019 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
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
31532000
CY2019Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
35274000
CY2019Q4 us-gaap Other Assets Current
OtherAssetsCurrent
11279000
CY2019Q4 us-gaap Assets Current
AssetsCurrent
291621000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
23752000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15744000
CY2019Q4 us-gaap Goodwill
Goodwill
76845000
CY2018Q4 us-gaap Goodwill
Goodwill
69658000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22668000
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
2513000
CY2018Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
1723000
CY2019Q4 us-gaap Assets
Assets
447440000
CY2018Q4 us-gaap Assets
Assets
386123000
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
4274000
CY2018Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
4440000
CY2019Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
22303000
CY2018Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
20415000
CY2019Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
6207000
CY2018Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
4558000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
31463000
CY2018Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
25328000
CY2018Q4 us-gaap Deferred Rent Credit Current
DeferredRentCreditCurrent
1781000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
3783000
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
68030000
CY2018Q4 us-gaap Liabilities Current
LiabilitiesCurrent
56522000
CY2019Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
2851000
CY2018Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
2512000
CY2017 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
5815000
CY2017 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
1410000
CY2017 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
1933000
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
CY2017 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
23183000
CY2018 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
41862000
CY2017 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
37461000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
4093000
CY2018Q4 us-gaap Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
5371000
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
20085000
CY2019Q4 us-gaap Deferred Tax Liabilities Noncurrent
DeferredTaxLiabilitiesNoncurrent
1193000
CY2018Q4 us-gaap Deferred Tax Liabilities Noncurrent
DeferredTaxLiabilitiesNoncurrent
1376000
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
405000
CY2018Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
1368000
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
36000
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
81748000
CY2019 us-gaap Gross Profit
GrossProfit
186885000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5315000
CY2019 us-gaap Operating Expenses
OperatingExpenses
148479000
CY2018 us-gaap Operating Expenses
OperatingExpenses
139761000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
38406000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
26731000
CY2017 us-gaap Operating Income Loss
OperatingIncomeLoss
9981000
CY2019 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
2947000
CY2018 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
2329000
CY2017 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
1032000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
272000
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-626000
CY2017 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-320000
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
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
122000
CY2018 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax
-91000
CY2019 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Net Of Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
398000
CY2019 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
34971000
CY2018 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
19997000
CY2017 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
4334000
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.69
CY2017 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.01
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.68
CY2017 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.01
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34392000
CY2017 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34366000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35212000
CY2017 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
34712000
CY2016Q4 us-gaap Stockholders Equity
StockholdersEquity
257767000
CY2017 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
12728000
CY2017 spsc Stock Issued During Period Value Restricted Stock And Stock Options Exercised
StockIssuedDuringPeriodValueRestrictedStockAndStockOptionsExercised
1410000
CY2017 us-gaap Cumulative Effect On Retained Earnings Tax1
CumulativeEffectOnRetainedEarningsTax1
16277000
CY2017 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
1933000
CY2017 spsc Stock Retirement Of Escrow Shares During Period Value
StockRetirementOfEscrowSharesDuringPeriodValue
523000
CY2017 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
5815000
CY2017 us-gaap Net Income Loss
NetIncomeLoss
351000
CY2017 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
3944000
CY2017 spsc Reclassification Of Gain Loss On Investments Into Earnings
ReclassificationOfGainLossOnInvestmentsIntoEarnings
39000
CY2017 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
4574000
CY2017 us-gaap Operating Expenses
OperatingExpenses
136479000
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 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
20618000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22668000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
14690000
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
12510000
CY2017 us-gaap Share Based Compensation
ShareBasedCompensation
12728000
CY2019 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
574000
CY2018 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
364000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
6771000
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
4569000
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
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-489000
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
937000
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
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 Into Earnings
ReclassificationOfGainLossOnInvestmentsIntoEarnings
-273000
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 Into Earnings
ReclassificationOfGainLossOnInvestmentsIntoEarnings
-398000
CY2019 us-gaap New Accounting Pronouncement Or Change In Accounting Principle Effect Of Adoption Quantification
NewAccountingPronouncementOrChangeInAccountingPrincipleEffectOfAdoptionQuantification
8000
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
7581000
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
2798000
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
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11123000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
8593000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5315000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
4093000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3499000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
2592000
CY2019 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
319000
CY2018 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
3957000
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
706000
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-135000
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
CY2017 us-gaap Increase Decrease In Other Deferred Liability
IncreaseDecreaseInOtherDeferredLiability
-1027000
CY2019 spsc Increase Decrease In Operating Leases
IncreaseDecreaseInOperatingLeases
971000
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
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12510000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14690000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
13585000
CY2019 spsc Deferred Commission Expected Amortization Period
DeferredCommissionExpectedAmortizationPeriod
P2Y
CY2017 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
1335000
CY2018 us-gaap Stock Issued1
StockIssued1
3371000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
13750000
CY2019 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
73700000
CY2018 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
81666000
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
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
CY2017 spsc Payments To Acquire Businesses And Intangible Assets Net Of Cash Acquired
PaymentsToAcquireBusinessesAndIntangibleAssetsNetOfCashAcquired
500000
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
CY2017 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-22620000
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
20618000
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
19864000
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
6207000
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
14344000
CY2019 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
2269000
CY2018 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
1745000
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
CY2017 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-2472000
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
CY2017 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
1292000
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
CY2017 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
7250000
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
CY2016Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
115877000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
179252000
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1545000
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1534000
CY2017 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1068000
CY2019 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
322000
CY2018 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
405000
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019Q3 spsc Stock Dividend Percentage In Stock Split
StockDividendPercentageInStockSplit
1
CY2019Q3 spsc Stock Dividend Percentage In Stock Split
StockDividendPercentageInStockSplit
1
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019 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:5.24%;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>
CY2019 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
1
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
248240000
CY2019 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:5.24%;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>
CY2018Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
45475000
CY2019Q3 us-gaap Finitelived Intangible Assets Acquired1
FinitelivedIntangibleAssetsAcquired1
5000000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
279124000
CY2017 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
220085000
CY2019 spsc Recurring Revenues Timing Of Billings Latest Period
RecurringRevenuesTimingOfBillingsLatestPeriod
P30D
CY2019 spsc Estimated Period For Material Rights Present To Customers
EstimatedPeriodForMaterialRightsPresentToCustomers
P2Y
CY2019 spsc Set Up Fees Recognized Period
SetUpFeesRecognizedPeriod
P2Y
CY2019 spsc Maximum Recognition Period For Miscellaneous One Time Fee
MaximumRecognitionPeriodForMiscellaneousOneTimeFee
P1Y
CY2019 spsc Deferred Commission Expected Amortization Period
DeferredCommissionExpectedAmortizationPeriod
P2Y
CY2019 spsc Deferred Customer Implementation Costs Expected Amortization Period
DeferredCustomerImplementationCostsExpectedAmortizationPeriod
P2Y
CY2018Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
45475000
CY2017Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
39933000
CY2019 spsc Deferred Costs Incurred
DeferredCostsIncurred
49883000
CY2018 spsc Deferred Costs Incurred
DeferredCostsIncurred
49583000
CY2019 spsc Deferred Costs Amortized
DeferredCostsAmortized
-48417000
CY2018 spsc Deferred Costs Amortized
DeferredCostsAmortized
-44041000
CY2019Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
46941000
CY2019 spsc Earn Out Liability Expected To Be Paid On Completion Of Revenue Milestones
EarnOutLiabilityExpectedToBePaidOnCompletionOfRevenueMilestones
500000
CY2019Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2018Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
0
CY2018 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 Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
0
CY2018 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
0
CY2019Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2018Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2019Q4 us-gaap Fair Value Liabilities Level1 To Level2 Transfers Amount
FairValueLiabilitiesLevel1ToLevel2TransfersAmount
0
CY2018Q4 us-gaap Fair Value Liabilities Level1 To Level2 Transfers Amount
FairValueLiabilitiesLevel1ToLevel2TransfersAmount
0
CY2019Q4 us-gaap Fair Value Liabilities Level2 To Level1 Transfers Amount
FairValueLiabilitiesLevel2ToLevel1TransfersAmount
0
CY2018Q4 us-gaap Fair Value Liabilities Level2 To Level1 Transfers Amount
FairValueLiabilitiesLevel2ToLevel1TransfersAmount
0
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
0
CY2018 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 Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
0
CY2018 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
0
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
74326000
CY2018Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
62132000
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
50574000
CY2018Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
41175000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
23752000
CY2018Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
20957000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11100000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
8600000
CY2017 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
7200000
CY2018Q4 us-gaap Goodwill
Goodwill
69658000
CY2017Q4 us-gaap Goodwill
Goodwill
51613000
CY2019 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
6372000
CY2018 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
20272000
CY2019 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
815000
CY2018 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
-2227000
CY2019Q4 us-gaap Goodwill
Goodwill
76845000
CY2018Q4 us-gaap Goodwill
Goodwill
69658000
CY2019 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0
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
CY2018Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
50971000
CY2018Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
27543000
CY2018Q4 spsc Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss
FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss
-687000
CY2018Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22741000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
5359000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
4518000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
3415000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
3342000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
2101000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
3933000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22668000
CY2018Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
455000
CY2019 us-gaap Capitalized Computer Software Additions
CapitalizedComputerSoftwareAdditions
797000
CY2018 us-gaap Capitalized Computer Software Additions
CapitalizedComputerSoftwareAdditions
455000
CY2019 us-gaap Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
86000
CY2019Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
1166000
CY2018Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
455000
CY2019 us-gaap Capitalized Computer Software Impairments1
CapitalizedComputerSoftwareImpairments1
0
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15744000
CY2019Q4 us-gaap Lessee Operating Lease Renewal Term
LesseeOperatingLeaseRenewalTerm
P5Y
CY2019 us-gaap Operating Lease Cost
OperatingLeaseCost
2569000
CY2019 us-gaap Variable Lease Cost
VariableLeaseCost
3390000
CY2019 us-gaap Lease Cost
LeaseCost
5959000
CY2018 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
5577000000
CY2017 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
4941000000
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
4383000
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
2537000
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P5Y
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.045
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
4595000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
5600000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
5091000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
4903000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
4651000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
1604000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
26444000
CY2019Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
2576000
CY2019Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
23868000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due Current
OperatingLeasesFutureMinimumPaymentsDueCurrent
4209000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Two Years
OperatingLeasesFutureMinimumPaymentsDueInTwoYears
3542000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Three Years
OperatingLeasesFutureMinimumPaymentsDueInThreeYears
4414000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Four Years
OperatingLeasesFutureMinimumPaymentsDueInFourYears
4042000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Five Years
OperatingLeasesFutureMinimumPaymentsDueInFiveYears
3854000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due Thereafter
OperatingLeasesFutureMinimumPaymentsDueThereafter
4817000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due
OperatingLeasesFutureMinimumPaymentsDue
24878000
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019Q3 spsc Increase Decrease In Common Stock Shares Authorized
IncreaseDecreaseInCommonStockSharesAuthorized
0
CY2019 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
20600000
CY2018 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
19900000
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
12100000
CY2017 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12727000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14690000
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12510000
CY2017 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12727000
CY2019Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
18700000
CY2019 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Period For Recognition1
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
P2Y6M
CY2016Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
2032024
CY2016Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
22.36
CY2017 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
345394
CY2017 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
27.94
CY2017 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
131004
CY2017 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
10.77
CY2017 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
51752
CY2017 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
27.97
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
CY2019 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
3393000
CY2018 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
3689000
CY2017 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
4227000
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
CY2017 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
2752000
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
CY2017Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
7312000
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
CY2017 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
9.43
CY2017 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
-184000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
599000
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
1103000
CY2017 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
258000
CY2019 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
169000
CY2018 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
540000
CY2017 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
652000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
6595000
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
3011000
CY2017 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
10262000
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
CY2017 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-291000
CY2019 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-161000
CY2018 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-410000
CY2017 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-355000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2017 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
10342000
CY2017 spsc Reclassification Of Alternative Minimum Tax Credit Carry Forward
ReclassificationOfAlternativeMinimumTaxCreditCarryForward
400000
CY2019Q4 us-gaap Income Tax Examination Liability Refund Adjustment From Settlement With Taxing Authority
IncomeTaxExaminationLiabilityRefundAdjustmentFromSettlementWithTaxingAuthority
200000
CY2019 spsc Unutilized Alternative Minimum Tax Credit Carryforwards Partially Refundable Year One
UnutilizedAlternativeMinimumTaxCreditCarryforwardsPartiallyRefundableYearOne
2020
CY2019 spsc Unutilized Alternative Minimum Tax Credit Carryforwards Partially Refundable Year Two
UnutilizedAlternativeMinimumTaxCreditCarryforwardsPartiallyRefundableYearTwo
2021
CY2019 spsc Unutilized Alternative Minimum Tax Credit Carryforwards Fully Refundable Year
UnutilizedAlternativeMinimumTaxCreditCarryforwardsFullyRefundableYear
2022
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
CY2017 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
3635000
CY2019 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
1933000
CY2018 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
1293000
CY2017 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
417000
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
CY2017 us-gaap Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
-105000
CY2019 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
940000
CY2018 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
902000
CY2017 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
530000
CY2019 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
329000
CY2018 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
351000
CY2017 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
268000
CY2018 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
-4000
CY2017 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
16000
CY2019 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
47000
CY2018 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
38000
CY2017 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
-134000
CY2019 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
1252000
CY2018 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
1843000
CY2017 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
227000
CY2017 us-gaap Tax Cuts And Jobs Act Of2017 Change In Tax Rate Income Tax Expense Benefit
TaxCutsAndJobsActOf2017ChangeInTaxRateIncomeTaxExpenseBenefit
6796000
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
CY2017 spsc Income Tax Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
IncomeTaxReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
925000
CY2019 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
152000
CY2018 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
161000
CY2017 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
71000
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2017 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
10342000
CY2018 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2018 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
CY2017 us-gaap Tax Cuts And Jobs Act Of2017 Change In Tax Rate Income Tax Expense Benefit
TaxCutsAndJobsActOf2017ChangeInTaxRateIncomeTaxExpenseBenefit
6800000
CY2019Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
9122000
CY2018Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
8356000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3944000
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3647000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
496000
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
464000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
2916000
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
3185000
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
9000
CY2018Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
180000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
16487000
CY2018Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
15832000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1068000
CY2018Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
797000
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
15419000
CY2018Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
15035000
CY2019Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
8820000
CY2018Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
2787000
CY2019Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
144000
CY2018Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
135000
CY2019Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
4975000
CY2018Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
2943000
CY2019Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
43000
CY2018Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
90000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
13982000
CY2018Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
5955000
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1437000
CY2018Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
9080000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2017 us-gaap Net Income Loss
NetIncomeLoss
351000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34392000
CY2017 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34366000
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
CY2017 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
300000
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
CY2017 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
46000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35212000
CY2017 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
34712000
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.69
CY2019Q1 us-gaap Net Income Loss
NetIncomeLoss
6813000
CY2017 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.01
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.68
CY2017 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.01
CY2019 us-gaap Stockholders Equity Note Stock Split
StockholdersEquityNoteStockSplit
two-for-one stock split
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
181000000
CY2018 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
1000000
CY2017 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
566000000
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
CY2017 us-gaap Defined Contribution Plan Maximum Annual Contributions Per Employee Percent
DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
0.80
CY2019 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2018 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2019 us-gaap Defined Contribution Plan Employer Matching Contribution Percent
DefinedContributionPlanEmployerMatchingContributionPercent
0.06
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
CY2017 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
1600000
CY2019Q4 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
72733000
CY2019Q3 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
70928000
CY2019Q2 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
68529000
CY2019Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
66934000
CY2019Q4 us-gaap Gross Profit
GrossProfit
48824000
CY2019Q3 us-gaap Gross Profit
GrossProfit
47665000
CY2019Q2 us-gaap Gross Profit
GrossProfit
44829000
CY2019Q1 us-gaap Gross Profit
GrossProfit
45567000
CY2019Q4 us-gaap Operating Income Loss
OperatingIncomeLoss
10764000
CY2019Q3 us-gaap Operating Income Loss
OperatingIncomeLoss
10933000
CY2019Q2 us-gaap Operating Income Loss
OperatingIncomeLoss
9330000
CY2019Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
7379000
CY2019Q4 us-gaap Net Income Loss
NetIncomeLoss
9162000
CY2019Q3 us-gaap Net Income Loss
NetIncomeLoss
8941000
CY2019Q2 us-gaap Net Income Loss
NetIncomeLoss
8796000
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.25
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.25
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.25
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.19
CY2018Q4 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
65189000
CY2018Q3 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
62868000
CY2018Q2 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
61091000
CY2018Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
59092000
CY2018Q4 us-gaap Gross Profit
GrossProfit
44012000
CY2018Q3 us-gaap Gross Profit
GrossProfit
42457000
CY2018Q2 us-gaap Gross Profit
GrossProfit
40689000
CY2018Q1 us-gaap Gross Profit
GrossProfit
39334000
CY2018Q4 us-gaap Operating Income Loss
OperatingIncomeLoss
8209000
CY2018Q3 us-gaap Operating Income Loss
OperatingIncomeLoss
8257000
CY2018Q2 us-gaap Operating Income Loss
OperatingIncomeLoss
5965000
CY2018Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
4300000
CY2018Q4 us-gaap Net Income Loss
NetIncomeLoss
7141000
CY2018Q3 us-gaap Net Income Loss
NetIncomeLoss
8061000
CY2018Q2 us-gaap Net Income Loss
NetIncomeLoss
5416000
CY2018Q1 us-gaap Net Income Loss
NetIncomeLoss
3254000
CY2018Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.21
CY2018Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.23
CY2018Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.15
CY2018Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.09

Files In Submission

Name View Source Status
0001564590-20-006450-index-headers.html Edgar Link pending
0001564590-20-006450-index.html Edgar Link pending
0001564590-20-006450.txt Edgar Link pending
0001564590-20-006450-xbrl.zip Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
ggvdapyqofi5000001.jpg Edgar Link pending
ggvdapyqofi5000002.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
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
spsc-10k_20191231.htm Edgar Link pending
spsc-10k_20191231_htm.xml Edgar Link completed
spsc-20191231.xsd Edgar Link pending
spsc-20191231_cal.xml Edgar Link unprocessable
spsc-20191231_def.xml Edgar Link unprocessable
spsc-20191231_lab.xml Edgar Link unprocessable
spsc-20191231_pre.xml Edgar Link unprocessable
spsc-ex211_447.htm Edgar Link pending
spsc-ex231_593.htm Edgar Link pending
spsc-ex311_8.htm Edgar Link pending
spsc-ex312_7.htm Edgar Link pending
spsc-ex321_6.htm Edgar Link pending
spsc-ex41_393.htm Edgar Link pending