Document and Entity Information
Document and Entity Information - USD ($) $ in Billions | 12 Months Ended | ||
Dec. 31, 2021 | Feb. 11, 2022 | Jun. 30, 2021 | |
Cover [Abstract] | |||
Document Type | 10-K | ||
Amendment Flag | false | ||
Document Period End Date | Dec. 31, 2021 | ||
Document Fiscal Year Focus | 2021 | ||
Document Fiscal Period Focus | FY | ||
Trading Symbol | SPSC | ||
Entity Registrant Name | SPS COMMERCE, INC. | ||
Entity Central Index Key | 0001092699 | ||
Current Fiscal Year End Date | --12-31 | ||
Entity Well-known Seasoned Issuer | Yes | ||
Entity Current Reporting Status | Yes | ||
Entity Voluntary Filers | No | ||
Entity Filer Category | Large Accelerated Filer | ||
Entity Shell Company | false | ||
Entity Small Business | false | ||
Entity Emerging Growth Company | false | ||
ICFR Auditor Attestation Flag | true | ||
Entity Common Stock, Shares Outstanding | 36,005,013 | ||
Entity Public Float | $ 3.6 | ||
Entity Interactive Data Current | Yes | ||
Entity File Number | 001-34702 | ||
Entity Incorporation, State or Country Code | DE | ||
Entity Tax Identification Number | 41-2015127 | ||
Entity Address, Address Line One | 333 South Seventh Street | ||
Entity Address, Address Line Two | Suite 1000 | ||
Entity Address, City or Town | Minneapolis | ||
Entity Address, State or Province | MN | ||
Entity Address, Postal Zip Code | 55402 | ||
City Area Code | 612 | ||
Local Phone Number | 435-9400 | ||
Title of 12(b) Security | Common Stock, par value $0.001 per share | ||
Security Exchange Name | NASDAQ | ||
Document Annual Report | true | ||
Document Transition Report | false | ||
Auditor Name | KPMG, LLP | ||
Auditor Location | Minneapolis, MN | ||
Auditor Firm ID | 185 | ||
Documents Incorporated by Reference | DOCUMENTS INCORPORATED BY REFERENCE Portions of the Company’s definitive Proxy Statement for the Annual Meeting of Stockholders to be held on May 17, 2022 (the “2022 Proxy Statement”), which is expected to be filed within 120 days after the end of the fiscal year covered by this Annual Report on Form 10-K, are incorporated by reference in Part III of this Annual Report on Form 10-K. |
Consolidated Balance Sheets
Consolidated Balance Sheets - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Current assets | ||
Cash and cash equivalents | $ 207,552 | $ 149,692 |
Short-term investments | 49,758 | 37,786 |
Accounts receivable | 38,811 | 37,811 |
Allowance for credit losses | (4,249) | (4,233) |
Accounts receivable, net | 34,562 | 33,578 |
Deferred costs | 44,529 | 37,988 |
Other assets | 16,042 | 12,312 |
Total current assets | 352,443 | 271,356 |
Property and equipment, net | 31,901 | 26,432 |
Operating lease right-of-use assets | 10,851 | 15,581 |
Goodwill | 143,663 | 134,853 |
Intangible assets, net | 58,587 | 60,230 |
Investments, non-current | 2,500 | |
Other assets | ||
Deferred costs, non-current | 15,191 | 12,607 |
Deferred income tax assets | 182 | 194 |
Other assets, non-current | 3,028 | 2,705 |
Total assets | 615,846 | 526,458 |
Current liabilities | ||
Accounts payable | 8,330 | 5,354 |
Accrued compensation | 31,661 | 22,872 |
Accrued expenses | 8,345 | 11,161 |
Deferred revenue | 50,428 | 37,947 |
Operating lease liabilities | 4,108 | 2,798 |
Total current liabilities | 102,872 | 80,132 |
Other liabilities | ||
Deferred revenue, non-current | 5,144 | 2,996 |
Operating lease liabilities, non-current | 16,426 | 19,672 |
Deferred income tax liabilities | 7,145 | 2,937 |
Total liabilities | 131,587 | 105,737 |
Commitments and contingencies | ||
Stockholders' equity | ||
Preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding | ||
Common stock, $0.001 par value; 110,000,000 shares authorized; 37,798,610 and 37,100,467 shares issued; and 36,009,257 and 35,487,217 shares outstanding, respectively | 38 | 37 |
Treasury Stock, at cost; 1,789,353 and 1,613,250 shares, respectively | (85,677) | (65,247) |
Additional paid-in capital | 433,258 | 393,462 |
Retained earnings | 138,087 | 93,490 |
Accumulated other comprehensive loss | (1,447) | (1,021) |
Total stockholders’ equity | 484,259 | 420,721 |
Total liabilities and stockholders’ equity | $ 615,846 | $ 526,458 |
Consolidated Balance Sheets (Pa
Consolidated Balance Sheets (Parenthetical) - $ / shares | Dec. 31, 2021 | Dec. 31, 2020 |
Statement Of Financial Position [Abstract] | ||
Preferred stock, par value | $ 0.001 | $ 0.001 |
Preferred stock, shares authorized | 5,000,000 | 5,000,000 |
Preferred stock, shares issued | 0 | 0 |
Preferred stock, shares outstanding | 0 | 0 |
Common stock, par value | $ 0.001 | $ 0.001 |
Common stock, shares authorized | 110,000,000 | 110,000,000 |
Common stock, shares issued | 37,798,610 | 37,100,467 |
Common stock, shares outstanding | 36,009,257 | 35,487,217 |
Treasury stock, shares | 1,789,353 | 1,613,250 |
Consolidated Statements of Comp
Consolidated Statements of Comprehensive Income - USD ($) shares in Thousands, $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Income Statement [Abstract] | |||
Revenues | $ 385,276 | $ 312,630 | $ 279,124 |
Cost of revenues | 131,678 | 99,836 | 92,239 |
Gross profit | 253,598 | 212,794 | 186,885 |
Operating expenses | |||
Sales and marketing | 88,044 | 75,955 | 70,140 |
Research and development | 39,038 | 31,024 | 28,305 |
General and administrative | 61,305 | 50,119 | 44,719 |
Amortization of intangible assets | 10,126 | 5,538 | 5,315 |
Total operating expenses | 198,513 | 162,636 | 148,479 |
Income from operations | 55,085 | 50,158 | 38,406 |
Other income (expense), net | (1,544) | 2,522 | 3,664 |
Income before income taxes | 53,541 | 52,680 | 42,070 |
Income tax expense | 8,944 | 7,094 | 8,358 |
Net income | 44,597 | 45,586 | 33,712 |
Other comprehensive income (expense) | |||
Foreign currency translation adjustments | (514) | 1,097 | 1,290 |
Unrealized gain (loss) on investments, net of tax of ($34), ($3), and $122 respectively | (102) | (10) | 367 |
Reclassification of (gain) loss on investments into earnings, net of tax of $63, ($52), and ($133), respectively | 190 | (157) | (398) |
Total other comprehensive income (expense) | (426) | 930 | 1,259 |
Comprehensive income | $ 44,171 | $ 46,516 | $ 34,971 |
Net income per share | |||
Basic | $ 1.24 | $ 1.29 | $ 0.96 |
Diluted | $ 1.21 | $ 1.26 | $ 0.94 |
Weighted average common shares used to compute net income per share | |||
Basic | 35,928 | 35,226 | 35,024 |
Diluted | 36,962 | 36,285 | 36,002 |
Consolidated Statements of Co_2
Consolidated Statements of Comprehensive Income (Parenthetical) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Income Statement [Abstract] | |||
Unrealized gain (loss) on investments, tax | $ (34) | $ (3) | $ 122 |
Reclassification of unrealized (gain) loss on investments into earnings, tax | $ 63 | $ (52) | $ (133) |
Consolidated Statements of Stoc
Consolidated Statements of Stockholders' Equity - USD ($) $ in Thousands | Total | Revision of Prior Period Accounting Standards Update Adjustment [Member] | Common Stock [Member] | Treasury Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings [Member] | Retained Earnings [Member]Revision of Prior Period Accounting Standards Update Adjustment [Member] | Accumulated Other Comprehensive Loss [Member] | Accumulated Other Comprehensive Loss [Member]Revision of Prior Period Accounting Standards Update Adjustment [Member] |
Beginning balance at Dec. 31, 2018 | $ 318,974 | $ 36 | $ (25,679) | $ 332,574 | $ 15,261 | $ (3,218) | |||
Beginning balance, shares at Dec. 31, 2018 | 34,691,472 | 823,784 | |||||||
Stock-based compensation | 13,365 | 13,365 | |||||||
Shares issued pursuant to stock awards | 6,207 | 6,207 | |||||||
Shares issued pursuant to stock awards, shares | 536,034 | ||||||||
Employee stock purchase plan activity | 2,269 | 2,269 | |||||||
Employee stock purchase plan, shares | 58,851 | ||||||||
Repurchases of common stock | (20,618) | $ (20,618) | |||||||
Repurchases of common stock, shares | (417,564) | 417,564 | |||||||
Settlement and subsequent return of shares | (300) | (300) | |||||||
Settlement and subsequent return of shares, shares | (5,522) | ||||||||
Net income | 33,712 | 33,712 | |||||||
Foreign currency translation adjustments | 1,290 | 1,290 | |||||||
Unrealized gain (loss) on investments, net of tax | 367 | 367 | |||||||
Reclassification of gain on investments into earnings, net of tax | (398) | (398) | |||||||
Ending balance at Dec. 31, 2019 | 354,876 | $ 36 | $ (46,297) | 354,115 | 48,973 | (1,951) | |||
Ending balance (ASU 2016-13) at Dec. 31, 2019 | $ (1,069) | $ (1,069) | |||||||
Ending balance (ASU 2018-02) at Dec. 31, 2019 | $ 8 | $ 8 | |||||||
Ending balance, shares at Dec. 31, 2019 | 34,863,271 | 1,241,348 | |||||||
Stock-based compensation | 17,382 | 17,382 | |||||||
Shares issued pursuant to stock awards | 18,592 | $ 1 | 18,591 | ||||||
Shares issued pursuant to stock awards, shares | 934,015 | ||||||||
Employee stock purchase plan activity | 3,374 | 3,374 | |||||||
Employee stock purchase plan, shares | 61,833 | ||||||||
Repurchases of common stock | (18,950) | $ (18,950) | |||||||
Repurchases of common stock, shares | (371,902) | 371,902 | |||||||
Net income | 45,586 | 45,586 | |||||||
Foreign currency translation adjustments | 1,097 | 1,097 | |||||||
Unrealized gain (loss) on investments, net of tax | (10) | (10) | |||||||
Reclassification of gain on investments into earnings, net of tax | (157) | (157) | |||||||
Ending balance at Dec. 31, 2020 | 420,721 | $ 37 | $ (65,247) | 393,462 | 93,490 | (1,021) | |||
Ending balance, shares at Dec. 31, 2020 | 35,487,217 | 1,613,250 | |||||||
Stock-based compensation | 25,686 | 25,686 | |||||||
Shares issued pursuant to stock awards | 9,374 | $ 1 | 9,373 | ||||||
Shares issued pursuant to stock awards, shares | 642,417 | ||||||||
Employee stock purchase plan activity | 4,737 | 4,737 | |||||||
Employee stock purchase plan, shares | 55,726 | ||||||||
Repurchases of common stock | (20,430) | $ (20,430) | |||||||
Repurchases of common stock, shares | (176,103) | 176,103 | |||||||
Net income | 44,597 | 44,597 | |||||||
Foreign currency translation adjustments | (514) | (514) | |||||||
Unrealized gain (loss) on investments, net of tax | (102) | (102) | |||||||
Reclassification of gain on investments into earnings, net of tax | 190 | 190 | |||||||
Ending balance at Dec. 31, 2021 | $ 484,259 | $ 38 | $ (85,677) | $ 433,258 | $ 138,087 | $ (1,447) | |||
Ending balance, shares at Dec. 31, 2021 | 36,009,257 | 1,789,353 |
Consolidated Statements of Cash
Consolidated Statements of Cash Flows - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Cash flows from operating activities | |||
Net income | $ 44,597 | $ 45,586 | $ 33,712 |
Reconciliation of net income to net cash provided by operating activities | |||
Deferred income taxes | 3,881 | 4,241 | 7,581 |
Change in earn-out liability | (85) | (445) | |
Depreciation and amortization of property and equipment | 14,788 | 13,127 | 11,123 |
Amortization of intangible assets | 10,126 | 5,538 | 5,315 |
Provision for credit losses | 4,717 | 5,660 | 3,499 |
Stock-based compensation | 27,574 | 18,936 | 14,690 |
Other, net | 323 | (24) | (574) |
Changes in assets and liabilities, net of effects of acquisition | |||
Accounts receivable | (4,959) | (5,922) | (6,771) |
Deferred costs | (9,299) | (3,414) | (1,441) |
Other current and non-current assets | (6,181) | 1,201 | (2,768) |
Accounts payable | 2,259 | 1,214 | (489) |
Accrued compensation | 6,775 | (1,257) | 319 |
Accrued expenses | 1,017 | 563 | 706 |
Deferred revenue | 14,483 | 4,432 | 6,366 |
Operating leases | 2,792 | (1,234) | 971 |
Net cash provided by operating activities | 112,893 | 88,562 | 71,794 |
Cash flows from investing activities | |||
Purchases of property and equipment | (19,588) | (16,467) | (13,585) |
Purchases of investments | (121,242) | (74,797) | (73,700) |
Maturities of investments | 111,193 | 69,461 | 84,472 |
Acquisition of business and intangible assets, net | (17,066) | (98,666) | (11,500) |
Net cash used in investing activities | (46,703) | (120,469) | (14,313) |
Cash flows from financing activities | |||
Repurchases of common stock | (20,430) | (18,950) | (20,618) |
Net proceeds from exercise of options to purchase common stock | 9,374 | 18,592 | 6,207 |
Net proceeds from employee stock purchase plan activity | 4,737 | 3,374 | 2,269 |
Payment for contingent consideration | (2,042) | (688) | |
Net cash provided by (used in) financing activities | (8,361) | 2,328 | (12,142) |
Effect of foreign currency exchange rate changes | 31 | 19 | 54 |
Net increase (decrease) in cash and cash equivalents | 57,860 | (29,560) | 45,393 |
Cash and cash equivalents at beginning of year | 149,692 | 179,252 | 133,859 |
Cash and cash equivalents at end of year | 207,552 | 149,692 | 179,252 |
Supplemental disclosure of cash flow information | |||
Cash paid for income taxes, net | 9,979 | 1,656 | 1,545 |
Non-cash financing activities: | |||
Net purchases of property and equipment on account | $ (683) | $ (551) | $ 322 |
General
General | 12 Months Ended |
Dec. 31, 2021 | |
Organization Consolidation And Presentation Of Financial Statements [Abstract] | |
General | NOTE A – General Business Description SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf. The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services SPS Commerce provides enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, ensuring that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements. Basis of Presentation The accompanying consolidated financial statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the consolidated financial statements. On July 25, 2019, we announced that our board of directors declared a two-for-one stock split of our common stock, effected in the form of a 100 percent stock dividend as of the record date on August 8, 2019. The stock split dividend was distributed on August 22, 2019. Earnings per share and weighted average shares outstanding are presented in this Annual Report on Form 10-K after the effect of the 100 percent stock dividend. The two-for-one stock split is reflected in the share amounts in all periods presented in this Annual Report on Form 10-K. Foreign Currency Translation The functional currency of our foreign operations is generally the applicable local currency. The functional currency is translated into U.S. dollars for balance sheet accounts using current exchange rates in effect as of the balance sheet date and for revenue and expense accounts using an average exchange rate during the year. The translation adjustments are deferred as a component of other comprehensive income within the consolidated statements of comprehensive income and the consolidated statements of stockholders' equity. Gains or losses resulting from transactions denominated in foreign currencies are included in other income (expense), net in our consolidated statements of comprehensive income. Use of Estimates 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. Business Combinations We recognize the fair value of the assets acquired and the liabilities assumed at the acquisition date, separately from goodwill. Goodwill as of the acquisition date is measured as the excess of consideration transferred over the amount of the assets acquired and the liabilities assumed. Assets acquired include tangible and intangible assets. We use estimates and assumptions that we believe are reasonable as a part of the purchase price allocation, which includes the process to determine the value and useful lives of purchased intangible assets and the process to determine the value of any contingent consideration liabilities. We record the acquisition-date fair value of any contingent liabilities, such as earn-out provisions, as part of the consideration transferred, if present. The unsettled earn-out liability, if any, fair value is subsequently remeasured at each reporting date. While we believe these estimates and assumptions are reasonable, they are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the fair value of the assets acquired and the liabilities assumed . Any such adjustments would be recorded capital adjustment as applicable. Upon the conclusion of the measurement period or final determination of the fair values, whichever comes first, any subsequent adjustments would be recorded in our consolidated statements of comprehensive income. Segment Information Our Chief Executive Officer acts as the Company’s chief operating decision maker and reviews financial information presented on a consolidated basis for purposes of allocating resources and evaluating financial performance. There are no segment managers who are held accountable by the chief operating decision maker, or anyone else, for operations, operating results and planning for levels or components below the consolidated unit level. Accordingly, we determined we have one operating and reportable segment, which is supply chain management products. Concentration of Credit Risk 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. Cash and Cash Equivalents Cash and cash equivalents consist of cash and highly liquid investments with original maturities of less than 90 days. Investments We invest in money market funds, certificates of deposit, highly liquid debt instruments of the United States (“U.S.”) government and U.S. corporate debt securities. Investments with remaining maturities of less than one year from the balance sheet date are classified as Short-term investments whereas those with remaining maturities of more than one year from the balance sheet date are classified as Investments, non-current. We determine the appropriate classification of certificates of deposit and marketable securities at the time of purchase and reevaluate such determination at each balance sheet date. Securities classified as available for sale are carried at fair value and the unrealized gains and losses on these investments, net of taxes, are included in accumulated other comprehensive loss in the consolidated balance sheets. Realized gains or losses are included in other income (expense), net in the consolidated statements of comprehensive income. Certain securities accrue interest that is included in other income (expense), net. When a determination has been made that the fair value of a marketable security is below its amortized cost basis, the portion of the unrealized loss that corresponds to a credit-related factor is realized through a credit allowance on the marketable security and the equivalent expense is realized in other income (expense), net in the consolidated statements of comprehensive income. Fair Value of Other Financial Instruments The carrying amounts of our short-term financial instruments, which include cash, cash equivalents, accounts receivable, and accounts payable, approximates fair value due to their short-term nature. Accounts Receivable Accounts receivable are initially recorded upon the sale and invoicing of products to customers. Credit is granted in the normal course of business without collateral. Accounts receivable are stated net of allowances for credit losses, which represent estimated losses resulting from customers not making required payments on accounts receivables. When determining the allowance, we pool our outstanding accounts receivable invoices based on the contractual due date of payment. We for estimated credit losses by pool, primarily historical credit losses, additional adjustments made for current and future macro-economic conditions and retail bankruptcy trends. Property and Equipment Property and equipment, including assets acquired under capital lease obligations, are stated at cost, net of accumulated depreciation and amortization. Depreciation and amortization expense is calculated using the straight-line method over the estimated useful lives when placed in service. We capitalize and amortize eligible costs to acquire or develop internal-use software that are incurred during the application development stage. Costs incurred during the preliminary project stage and post-implementation stage are expensed as incurred. Amortization expense for internal-use sof t ware is calculated using the straight-line method over the estimated useful life, c ommencing on the date when the asset is ready for its intended use. The estimated useful lives of property and equipment were as follows: Estimated Useful Life Computer equipment and software 2-3 years Office equipment and furniture 5-7 years Leasehold improvements Shorter of the useful life of the asset or the remaining term of the lease Internal-use software 3 years Significant additions or improvements extending asset lives beyond one year are capitalized, while repairs and maintenance are charged to expense as incurred. Maintenance and enhancements of internal-use software are expensed as incurred. The assets and related accumulated amortization are adjusted for abandoned internal-use software with the resulting gain or loss included in our consolidated statements of comprehensive income. Leases We determine if an arrangement is a lease at inception. Operating leases are included in operating lease right-of-use assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. Right-of-use (“ROU”) assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. We use the implicit interest rate when readily determinable. We estimate the discount rate for a similar collateralized asset by estimating costs of borrowing. The operating lease ROU asset also includes any lease payments made and lease incentives that have been incurred. The options to extend our leases are not recognized as part of our ROU assets and lease liabilities unless it is reasonably certain that we will exercise that option. Lease expense for lease payments is recognized on a straight-line basis over the lease term. For all leases, we combine non-lease components with the related lease components and account for it as a single lease component. The ROU assets are subject to the same impairment process as our long-lived assets. Additionally, we review our lease liabilities for remeasurement whenever there is a triggering event or when relevant facts and circumstances change. Research and Development Research and development costs primarily include maintenance and data conversion activities related to our cloud-based supply chain management products and are expensed as incurred. Goodwill Goodwill represents the excess of the purchase price over the fair value of identifiable net assets acquired in business combinations. We test goodwill for impairment annually at November 30, or more frequently if events or changes in circumstances indicate that the asset might be impaired. The impairment test is conducted by comparing the fair value of the net assets with the carrying amount of the reporting unit. We determine the fair value of the reporting unit based on our market capitalization at the testing date. If the carrying amount exceeds the fair value of the reporting unit, we would recognize an impairment loss in the consolidated statements of comprehensive income, to the extent that the carrying amount exceeds fair value. Intangible Assets Assets acquired in business combinations may include identifiable intangible assets such as subscriber relationships and developed technology. We recognize the fair value of the identifiable intangible assets acquired separately from goodwill. We have determined the fair value and useful lives of our purchased intangible assets using certain estimates and assumptions that we believe are reasonable. The purchased intangible assets are being amortized on a straight-line basis over their estimated useful lives. The estimated useful lives for intangible were as follows: Estimated Useful Life Subscriber relationships 7-10 years Acquired technology 3-10 years Third-Party Implementation Assets Third-party implementation costs are capitalized assets included in Other Assets and relate to implementation costs incurred for software hosting arrangements. Capitalized implementation costs are recognized on a straight-line basis beginning when the application is ready for its intended use and ending on the expected termination date of the hosting arrangement, including consideration of the noncancelable contractual term and reasonably certain renewals. The original terms are between four and six years for our current hosting arrangements. Recognized expense is reported in general and administrative expense, which is where the hosting arrangement subscriptions are reported. Impairment of Long-Lived Assets We review our long-lived assets for impairment whenever events or changes in circumstances indicate that the carrying amount may not be recoverable. The carrying amount of a long-lived asset is not recoverable if the carrying amount of an asset group exceeds the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the assets at the date it is tested for recoverability, whether in use or under development. An impairment loss is measured and recorded as an expense in the consolidated statements of comprehensive income as the amount by which the carrying amount of a long-lived asset exceeds its fair value. Revenue Recognition Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as expect to collect, in exchange for those services. We determine revenue recognition through the following steps: • Identification of the contract, or contracts, with a customer • Identification of the performance obligations in the contract • Determination of the transaction price • Allocation of the transaction price to the performance obligations in the contract • Recognition of revenue when, or as, we satisfy a performance obligation See Note C for further descriptions of our revenue recognition policy. Deferred Costs Deferred costs are those that are incurred to fulfill or obtain customer contracts and that are considered incremental and recoverable costs. These consist primarily of customer implementation costs, commissions paid to sales personnel and third-party partners for customer referrals, respectively. These costs are deferred and amortized over the expected period of benefit which we have determined to be two years. Customer implementation costs are based on actual costs Sales commissions are calculated based on estimated annual recurring revenue to be generated over the customer’s initial contract period. Related amortization expense is included in sales and marketing expenses in the consolidated statements of comprehensive income. Stock-Based Compensation We recognize the cost of all share-based payments to employees, executive officers, and non-employee members of the Company’s Board of Directors, including grants of incentive and nonqualified stock options, performance share units (“PSUs”), restricted stock awards (“RSAs”), restricted stock units (“RSUs”), deferred stock units (“DSUs”), employee stock purchase plan (“ESPP”) activity, and 401(k) stock match in the consolidated financial statements based on the grant date fair value of those awards. This cost is recognized over the period for which an employee is required to provide service in exchange for the award or the award performance period , except for expense s relating to retirement-eligible employees that have not given their required notice, which is recognized on a pro-rata basis over the notice period prior to retirement. RSAs result in the issuance of new shares when granted. For other stock-based awards, new shares are issued when the award is exercised, vested, or released according to the terms of the agreement. The fair value of stock options and ESPP activity is estimated using the Black-Scholes-Merton option valuation model. The fair value for RSAs, RSUs, and DSUs is the closing market value of the underlying stock on the date of grant less the purchase price (if any). The fair value of PSUs is estimated using a Monte Carlo simulation. In valuing share-based awards, excluding PSUs, judgment is required in determining the expected volatility of common stock and the expected term individuals will hold their share-based awards prior to exercising. The expected volatility of the options is based on the historical volatility of our common stock. Beginning with awards granted in 2020, the expected term of the options is derived from historical data on option holder exercises and post-vesting employment termination behavior. For awards granted prior to 2020, the expected term of the options was based on the simplified method. Additional valuation inputs include our expected non-issuance of future common stock dividends and the risk-free interest rate that is based on the U.S. Treasury rates at the date of grant with maturity dates approximately equaling the expected life at the grant date. For PSUs, t he Monte Carlo simulation utilizes multiple input variables that determine the probability of satisfying the performance conditions stipulated in the award. For all awards, w Income Taxes We account for income taxes using the asset and liability method, which requires recognition of deferred tax assets and liabilities for the expected future tax consequences of events that have been included in the consolidated financial statements. Under this method, deferred tax assets and liabilities are determined based on the difference between the financial statement and tax basis of assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. Deferred tax assets are reduced by a valuation allowance when, in our judgment, it is more likely than not that some or all of the deferred tax asset will not be realized. We assess our ability to realize our deferred tax assets at the end of each reporting period. Realization of our deferred tax assets is contingent upon future taxable earnings. Accordingly, this assessment requires estimates and judgment. If the estimates of future taxable income vary from actual results, our assessment regarding the realization of these deferred tax assets could change. Future changes in the estimated amount of deferred taxes expected to be realized will be reflected in our consolidated financial statements in the period the estimate is changed, with a corresponding adjustment to our operating results. We recognize the financial statement benefit of a tax position only after determining that the relevant tax authority would “more likely than not” sustain the position following an audit. For tax positions meeting the “more likely than not” threshold, the amount recognized in the financial statements is the largest benefit that has a greater than 50% likelihood of being realized upon ultimate settlement with the relevant tax authority. It is our practice to recognize interest and penalties accrued on any unrecognized tax benefits as a component of income tax expense. Net Income Per Share Basic net income per share has been computed using the weighted average number of shares of common stock outstanding during each period. Diluted net income per share also includes the impact of our outstanding potential common shares, including options, RSAs, RSUs, PSUs, DSUs and ESPP activity. Potential common shares that are anti-dilutive are excluded from the calculation of diluted net income per share. Accounting Pronouncements Not Yet Adopted Standard Date of Issuance Description Date of Required Adoption Effect on the Financial Statements ASU 2021-08 , Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers October 2021 This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter. January 2023 The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired. |
Business Acquisitions
Business Acquisitions | 12 Months Ended |
Dec. 31, 2021 | |
Business Combinations [Abstract] | |
Business Acquisitions | NOTE B – Business Acquisitions Genius Central On November 3, 2021, we merged with and correspondingly acquired all of the outstanding equity ownership interests of Genius Central Systems Inc. (“Genius Central”), a leading provider of order processing services and other supply chain products in the natural product industry. Pursuant to the membership interest purchase agreement, given a target working capital level, the total transaction price was $17.4 million. $17.3 million was paid in cash at closing and $0.1 million is due to the sellers as part of the initial net working capital adjustment. Purchase Price Allocation We accounted for the acquisition as a business combination. We allocated the purchase price to the tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date. The excess of the purchase price over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. Goodwill is attributed to a trained workforce and other buyer-specific value resulting from expected synergies, including long-term cost savings, which are not included in the fair values of identifiable assets. The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date: (in thousands) Estimated Fair Value Cash $ 205 Accounts receivable, net 353 Deferred tax assets 1,877 Other current and non-current assets 115 Goodwill 8,914 Intangible assets 8,500 Current liabilities (238 ) Deferred revenue (146 ) Deferred tax liabilities (2,167 ) $ 17,413 Purchased Intangible Assets The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives: Weighted Average Estimated Estimated (in thousands, except weighted average estimated useful life) Fair Value Useful Life Subscriber relationships $ 6,400 9 years Acquired technology 2,100 7 years Total $ 8,500 Data Masons In December 2020, we acquired all of the outstanding equity ownership interests of D Masons Software, LLC (“Data Masons”). As of December 31, 2020, the purchase accounting for the acquisition was not finalized. During 2021, the only change in the purchase accounting was a $0.3 million reduction of amounts due from the seller as part of the initial net working capital adjustment and a corresponding increase to goodwill. |
Revenue
Revenue | 12 Months Ended |
Dec. 31, 2021 | |
Revenue From Contract With Customer [Abstract] | |
Revenue | NOTE C – Revenue We derive our revenues from the following revenue streams: Year Ended December 31, (in thousands) 2021 2020 2019 Recurring revenues: Fulfillment $ 306,851 $ 251,272 $ 219,297 Analytics 42,674 38,824 37,038 Other 5,481 4,920 5,671 Recurring Revenues 355,006 295,016 262,006 One-time revenues 30,270 17,614 17,118 Total revenue $ 385,276 $ 312,630 $ 279,124 Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as expect to collect, in exchange for those services. Recurring Revenues Recurring revenues consist of recurring subscriptions from customers that utilize our Fulfillment, Analytics and Other supply chain management products. Revenue for these products is generally recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Our contracts with our recurring revenue customers are recurring in nature, ranging from monthly to annual, and generally allow the customer to cancel the contract for any reason with 30 to 90 days’ notice. Timing of billings varies by customer and by contract type and are either in advance or within 30 days of the service being performed. The recurring revenue contracts are for one year or less and recognized on a ratable basis over the contract term. We have applied the optional exemption to not disclose information about the remaining performance obligations for recurring revenue contracts since they have original durations of one year or less. One-time Revenues One-time revenues consist of set-up fees and miscellaneous fees from customers. Set- up revenues Set-up fees are specific for each connection a customer has with a trading partner and many of our customers have connections with numerous trading partners. These nonrefundable fees are necessary for our customers to utilize our services and do not provide any standalone value. Set-up fees constitute a material renewal option right that provide customers a significant future incentive that would not be otherwise available to that customer unless they entered into the contract, as the set-up fees will not be incurred again upon contract renewal. As such, set-up fees and related costs are deferred and recognized ratably over two years, which is the estimated period for which a material right is present for our customers. The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 11,118 $ 10,518 Invoiced set-up fees 15,931 11,410 Recognized set-up fees (12,590 ) (10,810 ) Balance, end of year $ 14,459 $ 11,118 The entire balance of deferred set-up fees will be recognized within two years; those that will be recognized within the next year are classified as current whereas the remainder are classified as non-current. Miscellaneous one-time revenues Miscellaneous one-time fees consist of professional services and testing and certification. The contract period for these one-time fees is for one year or less and recognized at the time service is provided. We have applied the optional exemption to not disclose information about the remaining performance obligations for miscellaneous one-time fee contracts since they have original durations of one year or less. Deferred Revenue In the year ended December 31, 2021, we recognized revenue of $37.9 million from amounts included in deferred revenue at December 31, 2020. |
Deferred Costs
Deferred Costs | 12 Months Ended |
Dec. 31, 2021 | |
Deferred Costs [Abstract] | |
Deferred Costs | NOTE D – Deferred Costs The deferred costs activity was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 50,595 $ 46,941 Incurred deferred costs 64,076 54,421 Amortized deferred costs (54,951 ) (50,767 ) Balance, end of year $ 59,720 $ 50,595 |
Financial Instruments
Financial Instruments | 12 Months Ended |
Dec. 31, 2021 | |
Disclosure Text Block Supplement [Abstract] | |
Financial Instruments | NOTE E – Financial Instruments Cash equivalents and investments Cash equivalents and investments consisted of the following: December 31, 2021 2020 Amortized Unrealized Gains Amortized Unrealized (in thousands) Cost (Losses), net Fair Value Cost Losses, net Fair Value Cash equivalents: Money market funds $ 138,205 $ — $ 138,205 $ 112,907 $ — $ 112,907 Certificate of deposit 7,268 — 7,268 7,708 — 7,708 Marketable securities: U.S. corporate bonds — — — 5,069 (29 ) 5,040 Commercial paper 34,984 7 34,991 7,569 (55 ) 7,514 U.S. treasury securities 7,500 (1 ) 7,499 20,051 (27 ) 20,024 $ 187,957 $ 6 $ 187,963 $ 153,304 $ (111 ) $ 153,193 Maturing within one year $ 187,963 $ 150,693 Maturing within one to two years — 2,500 Total $ 187,963 $ 153,193 Recurring Fair Value Measurements We measure certain financial assets at fair value on a recurring basis based on a fair value hierarchy that requires us to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value. A financial instrument’s categorization within the fair value hierarchy is based upon the lowest level of input that is significant to the fair value measurement. The three levels of inputs that are used to measure fair value are: • Level 1 – quoted prices in active markets for identical assets or liabilities. • Level 2 – observable inputs other than Level 1 prices, such as (a) quoted prices for similar assets or liabilities, (b) quoted prices in markets with insufficient volume or infrequent transactions (less active markets), or (c) model-derived valuations in which all significant inputs are observable or can be derived principally from or corroborated by observable market data for substantially the full term of the assets or liabilities. • Level 3 – unobservable inputs to the valuation methodology that are significant to the measurement of fair value of assets or liabilities. We obtain the fair values of our Level 2 securities from a professional pricing service. The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis: December 31, 2021 (in thousands) Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 138,205 $ — $ — $ 138,205 Certificate of deposit 7,268 — — 7,268 Marketable securities: U.S. corporate bonds — — — — Commercial paper — 34,991 — 34,991 U.S. treasury securities — 7,499 — 7,499 $ 145,473 $ 42,490 $ — $ 187,963 December 31, 2020 (in thousands) Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 112,907 $ — $ — $ 112,907 Certificate of deposit 7,708 — — 7,708 Marketable securities: U.S. corporate bonds — 5,040 — 5,040 Commercial paper — 7,514 — 7,514 U.S. treasury securities — 20,024 — 20,024 $ 120,615 $ 32,578 $ — $ 153,193 Liabilities: Contingent consideration $ — $ — $ 1,878 $ 1,878 $ — $ — $ 1,878 $ 1,878 For the contingent consideration liability, related to the Data Masons acquisition, we were required to pay the former owners of Data Masons $1.9 million in the event the Paycheck Protection Program Loan (“PPP Loan”) acquired in the acquisition was forgiven in full. In 2021, the Small Business Administration approved the full forgiveness of the PPP Loan and, accordingly, the payment of the $1.9 million contingent liability was made. Nonrecurring Fair Value Measurements We measure certain assets and liabilities at fair value on a nonrecurring basis, including long-lived assets, goodwill, and indefinite-lived intangible assets. |
Allowance for Credit Losses
Allowance for Credit Losses | 12 Months Ended |
Dec. 31, 2021 | |
Receivables [Abstract] | |
Allowance for Credit Losses | NOTE F – Allowance for Credit Losses The allowance for credit losses activity, included in accounts receivable, net, was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Balance, beginning of year $ 4,233 $ 1,469 $ 1,392 Provision for credit losses 4,717 5,660 3,499 Write-offs, net of recoveries (4,790 ) (4,319 ) (3,422 ) Initial allowance for business combination acquired receivables 89 354 — Adoption of ASU 2016-13 — 1,069 — Balance, end of year $ 4,249 $ 4,233 $ 1,469 |
Property and Equipment, net
Property and Equipment, net | 12 Months Ended |
Dec. 31, 2021 | |
Property Plant And Equipment [Abstract] | |
Property and Equipment, net | NOTE G – Property and Equipment, net Property and equipment, net consisted of the following: December 31, (in thousands) 2021 2020 Internally developed software $ 44,981 $ 33,565 Computer equipment 29,329 29,660 Office equipment and furniture 10,972 9,613 Leasehold improvements 16,685 12,746 Property and equipment, cost 101,967 85,584 Less: accumulated depreciation and amortization (70,066 ) (59,152 ) Total property and equipment, net $ 31,901 $ 26,432 Depreciation and amortization expense of property and equipment was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Depreciation and amortization expense $ 14,788 $ 13,127 $ 11,123 |
Goodwill and Intangible Assets,
Goodwill and Intangible Assets, net | 12 Months Ended |
Dec. 31, 2021 | |
Goodwill And Intangible Assets Disclosure [Abstract] | |
Goodwill and Intangible Assets, net | NOTE H – Goodwill and Intangible Assets, net Goodwill The activity in goodwill was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 134,853 $ 76,845 Additions from business acquisitions 8,914 56,960 Remeasurement from provisional purchase accounting amount 268 — Foreign currency translation (372 ) 1,048 Balance, end of year $ 143,663 $ 134,853 Intangible Assets Intangible assets, net consisted of the following: December 31, 2021 (in thousands, except weighted average amortization period) Gross Carrying Amount Accumulated Amortization Foreign Currency Translation Net Weighted Average Remaining Amortization Period Subscriber relationships $ 61,270 $ (29,866 ) $ (1,395 ) $ 30,009 6 years Acquired technology 35,316 (6,738 ) — 28,578 7 years $ 96,586 $ (36,604 ) $ (1,395 ) $ 58,587 7 years December 31, 2020 (in thousands, except weighted average amortization period) Gross Carrying Amount Accumulated Amortization Foreign Currency Translation Net Weighted Average Remaining Amortization Period Subscriber relationships $ 54,447 $ (24,792 ) $ 101 $ 29,756 6 years Non-competition agreements 698 (691 ) (4 ) 3 0 years Acquired technology 33,195 (2,724 ) — 30,471 8 years $ 88,340 $ (28,207 ) $ 97 $ 60,230 7 years The estimated future annual amortization expense related to intangible assets is as follows: (in thousands) 2022 $ 9,883 2023 9,808 2024 8,534 2025 8,396 2026 7,392 Thereafter 14,574 Total future amortization $ 58,587 |
Other Assets
Other Assets | 12 Months Ended |
Dec. 31, 2021 | |
Other Assets [Abstract] | |
Other Assets | NOTE I – Other Assets The activity in the capitalized implementation costs for software hosting arrangements was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 1,181 $ 1,166 Capitalized implementation fees 130 127 Amortization of implementation fees (229 ) (112 ) Balance, end of year $ 1,082 $ 1,181 |
Commitments and Contingencies
Commitments and Contingencies | 12 Months Ended |
Dec. 31, 2021 | |
Commitments And Contingencies Disclosure [Abstract] | |
Commitments and Contingencies | NOTE J – Commitments and Contingencies Leases We are obligated under non-cancellable operating leases, primarily for office space, as follows: December 31, 2021 December 31, 2020 (in thousands, except remaining term) Right-of-Use Asset Remaining Term Right-of-Use Asset Remaining Term Minneapolis, MN lease $ 6,837 5 years $ 10,992 6 years Kyiv, Ukraine lease 1,530 3 years 1,930 4 years Other leases 2,484 <1 - 5 years 2,659 <1 - 5 years $ 10,851 $ 15,581 In 2020, we executed an amendment to our lease agreement for our current headquarters located in Minneapolis, Minnesota where we lease approximately 198,000 square feet under an agreement that now expires in 2027. In 2019, we executed a lease agreement for a new Kyiv, Ukraine location, where we lease approximately 17,000 square feet under an agreement that expires in 2025. The lease includes one option to extend the term for five years and six months at a market rate determined in accordance with the lease. The components of lease expense were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Operating lease cost $ 3,089 $ 2,719 $ 2,569 Variable lease cost 3,660 3,578 3,390 $ 6,749 $ 6,297 $ 5,959 Supplemental cash flow information related to leases was as follows: December 31, (in thousands) 2021 2020 Cash paid for amounts included in the measurement of lease liabilities Operating cash flows from operating leases $ 3,757 $ 4,134 Right-of-use assets obtained in exchange for operating lease liabilities 992 12,801 Supplemental balance sheet information related to leases was as follows: December 31, 2021 December 31, 2020 Weighted-average remaining lease term - operating leases 4.8 years 5.6 years Weighted-average discount rate - operating leases 4.0 % 4.1 % At December 31, 2021, our future minimum payments under operating leases were as follows: (in thousands) 2022 $ 4,865 2023 4,687 2024 4,257 2025 3,859 2026 3,772 Thereafter 1,269 Total future payments 22,709 Less: imputed interest (2,175 ) Total operating lease liabilities $ 20,534 Purchase Commitments We have entered into separate noncancelable agreements with computing infrastructure and customer relationship management vendors for services through 2023. At December 31, 2021, the total remaining purchase commitments were $9.9 million. Contingencies We may be involved in various claims and legal actions in the normal course of business. We believe that the outcome of any such claim or legal action is not expected to have a material effect on our financial position, results of operations, or cash flows. |
Stockholders' Equity
Stockholders' Equity | 12 Months Ended |
Dec. 31, 2021 | |
Equity [Abstract] | |
Stockholders' Equity | NOTE K – Stockholders’ Equity Stock Repurchase Program Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the plans and activity thereunder was as follows: (in thousands) Effective Date Expiration Date Share Value Authorized for Repurchase Share Value Repurchased Unused & Expired Share Repurchase Value Share Value Available for Future Repurchase 2017 Program Nov. 2017 Nov. 2019 $ 50,000 $ 46,297 $ 3,703 N/A 2019 Program Nov. 2019 Nov. 2021 50,000 29,611 20,389 N/A 2021 Program Nov. 2021 Nov. 2023 50,000 9,769 N/A $ 40,231 The stock repurchase activity by year was as follows: Year Ended December 31, (in thousands, except share data) 2021 2020 2019 Shares repurchased cost $ 20,430 $ 18,950 $ 20,618 Shares repurchased 176,103 371,902 417,564 |
Stock-Based Compensation
Stock-Based Compensation | 12 Months Ended |
Dec. 31, 2021 | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |
Stock-Based Compensation | NOTE L – Stock-Based Compensation Our equity compensation plans provide for the grant of incentive and nonqualified stock options, as well as other stock-based awards including PSUs, RSAs, RSUs, and DSUs, to employees, non-employee directors and other consultants who provide services to us. We also provide an ESPP and 401(k) stock match. At December 31, 2021 there were approximately 13.5 million shares available for grant under approved equity compensation plans. Stock-based compensation expense was allocated in the consolidated statements of comprehensive income as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Cost of revenues $ 6,760 $ 3,948 $ 2,819 Operating expenses Sales and marketing 6,248 4,119 2,946 Research and development 4,384 3,626 2,651 General and administrative 10,182 7,243 6,274 $ 27,574 $ 18,936 $ 14,690 Stock-based compensation expense by grant type or plan was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Stock options $ 2,057 $ 2,232 $ 3,211 PSUs 6,417 3,219 1,379 RSUs 15,388 10,367 7,553 RSAs & DSUs 434 446 519 ESPP 1,391 1,117 701 401(k) stock match 1,887 1,555 1,327 $ 27,574 $ 18,936 $ 14,690 As of December 31, 2021, there was $30.4 million of unrecognized stock-based compensation expense under our equity compensation plans, which is expected to be recognized on a straight-line basis over a weighted-average period of 2.3 years. Stock Options Stock options generally vest over four years and have a contractual term of seven years from the date of grant. Our stock option activity was as follows: Weighted Average Options Exercise Price (#) ($/share) Outstanding at December 31, 2018 1,746,468 25.93 Granted 184,434 53.92 Exercised (346,098 ) 21.98 Forfeited (40,892 ) 30.74 Outstanding at December 31, 2019 1,543,912 30.03 Granted 127,974 59.02 Exercised (712,074 ) 26.11 Forfeited (14,926 ) 43.14 Outstanding at December 31, 2020 944,886 36.71 Granted 53,223 105.53 Exercised (311,378 ) 30.10 Forfeited (8,081 ) 68.62 Outstanding at December 31, 2021 678,650 44.76 Of the total outstanding options at December 31, 2021, 0.5 million The table below presents additional information related to our stock options: Year Ended December 31, (in thousands, except per share data) 2021 2020 2019 Fair value of options vested $ 2,509 $ 3,000 $ 3,393 Intrinsic value of options exercised 27,713 31,737 11,103 Intrinsic value of options outstanding 66,235 67,918 39,194 Weighted-average fair value per share of options granted 31.31 16.18 16.86 The fair values of the options granted were estimated on the date of grant using the following weighted-average assumptions: Year Ended December 31, 2021 2020 2019 Volatility 35 % 33 % 33 % Dividend yield — — — Life (in years) 4.4 4.0 4.4 Risk-free interest rate 0.59 % 0.99 % 2.41 % Performance Share Units, Restricted Stock Units and Awards, and Deferred Stock Units In 2021, 2020, and 2019 we granted PSU awards with certain target performance levels. These awards are earned based upon our Company’s total shareholder return as compared to an indexed total shareholder return over the course of a fiscal based three-year three-year RSUs generally vest over four years and, upon vesting, the holder is entitled to receive shares of our common stock. RSAs vest over one year and, upon vesting, the holder is entitled to receive shares of our common stock. In lieu of RSAs, a participant may elect to receive DSUs with one year vesting, but the participant directs delayed receipt of common shares of up to ten years after the end of service to us. Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows: Weighted Average Grant Date Fair (#) Value ($/share) Outstanding at December 31, 2018 758,334 29.99 Granted 288,462 55.69 Vested and common stock issued (217,424 ) 31.05 Forfeited (31,826 ) 34.67 Outstanding at December 31, 2019 797,546 38.80 Granted 331,264 62.78 Vested and common stock issued (222,606 ) 36.06 Forfeited (167,782 ) 30.09 Outstanding at December 31, 2020 738,422 52.37 Granted 314,290 101.85 Vested and common stock issued (331,669 ) 44.14 Forfeited (18,883 ) 66.35 Outstanding at December 31, 2021 702,160 78.03 The number of PSUs, RSUs, RSAs, and DSUs outstanding at December 31, 2021 included 0.1 million units that have vested, but the shares of common stock have not yet been issued, pursuant to the terms of the agreement. Employee Stock Purchase Plan Our ESPP allows participating employees to purchase shares of our common stock at a discount through payroll deductions. The plan is available to all employees subject to certain eligibility requirements. Participating employees may purchase common stock, on a voluntary after-tax basis, at a price that is the lower of 85% of the fair market value of our common stock at the beginning or end of each stock purchase period. The plan consists of two six-month offering periods, beginning on January 1 and July 1 of each calendar year. A total of 1.8 shares of common stock are remaining for issuance under the plan at December 31, 2021. Our ESPP activity was as follows: Year Ended December 31, (in thousands, except share data) 2021 2020 2019 Amounts for shares purchased $ 4,737 $ 3,374 $ 2,270 Shares purchased 55,726 61,833 58,851 The fair value was estimated based on the market price of our common stock at the beginning of each offering period using the following assumptions: Year Ended December 31, 2021 2020 2019 Volatility 32 % 43 % 36 % Dividend yield — — — Life (in years) 0.50 0.50 0.50 Risk-free interest rate 0.07 % 0.96 % 2.36 % |
Income Taxes
Income Taxes | 12 Months Ended |
Dec. 31, 2021 | |
Income Tax Disclosure [Abstract] | |
Income Taxes | Note M – Income Taxes Our provision for income taxes was comprised of the following components: Year Ended December 31, (in thousands) 2021 2020 2019 Current Federal $ 1,559 $ - $ - State 1,890 1,249 599 Foreign 1,610 1,608 169 Deferred Federal 4,294 4,462 6,595 State (88 ) 244 1,156 Foreign (321 ) (469 ) (161 ) $ 8,944 $ 7,094 $ 8,358 Our income tax expense differed from the amounts computed by applying the U.S. federal income tax rate to pretax income as a result of the following: Year Ended December 31, 2021 2020 2019 U.S. statutory federal income tax rate 21.0 % 21.0 % 21.0 % Increase (decrease) resulting from: U.S. state income taxes, net of federal tax effect 4.5 4.5 4.6 Tax impact of stock activity (12.8 ) (12.9 ) (6.0 ) Nondeductible compensation 5.0 1.8 2.2 Research and development credit (1.1 ) (0.6 ) (3.0 ) Foreign derived intangible income (1.3 ) (1.3 ) - Other 1.4 1.0 1.1 Effective tax rate 16.7 % 13.5 % 19.9 % The significant components of our deferred tax assets and liabilities were as follows: December 31, (in thousands) 2021 2020 Deferred tax assets Net operating loss and credit carryforwards $ 4,828 $ 4,539 Stock-based compensation expense 3,934 3,605 Accounts receivable allowances 1,336 1,228 Accrued expenses 5,174 3,200 Deferred revenue 1,300 695 Operating lease liabilities 5,235 5,435 Other 142 660 Gross deferred tax assets 21,949 19,362 Less: valuation allowance (1,815 ) (1,582 ) Total net deferred tax assets 20,134 17,780 Deferred tax liabilities Deferred costs $ (15,126 ) $ (12,561 ) Right-of-use assets (2,787 ) (3,754 ) Foreign operations (364 ) (228 ) Depreciation and amortization (8,820 ) (3,980 ) Other — — Total deferred tax liabilities (27,097 ) (20,523 ) Net deferred tax liabilities $ (6,963 ) $ (2,743 ) As of December 31, 2021, we had net operating loss carryforwards of $14.4 $4.0 As of December 31, 2021, we had federal research and development (“R&D”) credit carryforwards, net of Section 383 limitations, of $1.3 million, which, if not utilized, will expire between 2034 and 2042. As of December 31, 2021, we had state R&D credit carryforwards of $1.8 million which, if not utilized, will expire between 2025 and 2037. We are subject to income taxes for U.S. federal and various state and international jurisdictions. We are generally subject to U.S. federal and state tax examinations for most prior tax years due to our net operating loss and R&D credit carryforwards and the utilization of the carryforwards in years still open under statute. |
Other Income
Other Income | 12 Months Ended |
Dec. 31, 2021 | |
Other Income And Expenses [Abstract] | |
Other Income | NOTE N – Other Income Other income (expense), net included the following: Year Ended December 31, (in thousands) 2021 2020 2019 Investment income $ 278 $ 1,208 $ 2,947 Realized gain (loss) from foreign currency on cash and investments held (1,456 ) 1,753 - Change in earn-out liability - (85 ) (445 ) Other (366 ) (354 ) 1,162 Total other income (expense), net $ (1,544 ) $ 2,522 $ 3,664 Effective January 1, 2021, all realized gains or losses and interest income on our investments are included in investment income. Previously, realized gains and losses were included in other income (expense), net and interest income was included in interest income, net. Additionally, realized gains or losses from foreign currency on cash and investments held were previously included in other income (expense), net. Amounts for the year ended December 31, 2020 and 2019 have been reclassified to be consistent with the classifications for the year ended December 31, 2021. |
Net Income Per Share
Net Income Per Share | 12 Months Ended |
Dec. 31, 2021 | |
Earnings Per Share [Abstract] | |
Net Income Per Share | NOTE O – Net Income Per Share The components and calculation of basic and diluted net income per share were as follows: Year Ended December 31, (in thousands, except per share amounts) 2021 2020 2019 Numerator Net income $ 44,597 $ 45,586 $ 33,712 Denominator Weighted average common shares outstanding, basic 35,928 35,226 35,024 Options to purchase common stock 529 611 680 PSUs, RSUs, RSAs, and DSUs 505 448 298 Weighted average common shares outstanding, diluted 36,962 36,285 36,002 Net income per share Basic $ 1.24 $ 1.29 $ 0.96 Diluted $ 1.21 $ 1.26 $ 0.94 The number of the outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Antidilutive shares 31 26 181 |
Retirement Savings Plan
Retirement Savings Plan | 12 Months Ended |
Dec. 31, 2021 | |
Compensation And Retirement Disclosure [Abstract] | |
Retirement Savings Plan | NOTE P – Retirement Savings Plan We sponsor a 401(k) retirement savings plan for our employees. Employees can contribute up to 80% of their compensation, subject to the limits established by law, and we match 50% of the employee’s contribution up to the first 6% of pre-tax annual compensation. A portion of our match is in Company stock, which is purchased from the open market by our plan provider and immediately deposited into the employee’s 401(k) account. Our total contributions to the plan were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Retirement contributions $ 4,790 $ 3,889 $ 3,306 |
Geographic Information
Geographic Information | 12 Months Ended |
Dec. 31, 2021 | |
Revenue From Contract With Customer [Abstract] | |
Geographic Information | NOTE Q – Geographic Information Revenue The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S was as follows: Year Ended December 31, 2021 2020 2019 Domestic revenue 84 % 85 % 85 % No . Property and Equipment The percentage of property and equipment, net located at subsidiary and office locations outside of the United States was as follows: December 31, 2021 2020 International property and equipment 12 % 15 % |
Related Party Transactions
Related Party Transactions | 12 Months Ended |
Dec. 31, 2021 | |
Related Party Transactions [Abstract] | |
Related Party Transactions | NOTE R– Related Party Transactions SPS Commerce Foundation (the “Foundation”) is a Minnesota non-profit organization exempt from federal taxation under Section 501(c)(3) of the Internal Revenue Code. The Foundation was formed in 2015 to engage in, advance, support, promote and administer charitable activities. The directors of the Foundation are also our corporate officers. These directors receive no compensation from the Foundation or us for the management services performed for the Foundation. The Foundation is not a subsidiary of ours and the financial results of the Foundation are not consolidated with our financial statements. We have no current legal obligations for future commitments to the Foundation. Our contributions to the Foundation were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Foundation contributions $ 2,400 $ 1,800 $ 10 |
General (Policies)
General (Policies) | 12 Months Ended |
Dec. 31, 2021 | |
Organization Consolidation And Presentation Of Financial Statements [Abstract] | |
Business Description | Business Description SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf. The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services SPS Commerce provides enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, ensuring that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements. |
Basis of Presentation | Basis of Presentation The accompanying consolidated financial statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the consolidated financial statements. On July 25, 2019, we announced that our board of directors declared a two-for-one stock split of our common stock, effected in the form of a 100 percent stock dividend as of the record date on August 8, 2019. The stock split dividend was distributed on August 22, 2019. Earnings per share and weighted average shares outstanding are presented in this Annual Report on Form 10-K after the effect of the 100 percent stock dividend. The two-for-one stock split is reflected in the share amounts in all periods presented in this Annual Report on Form 10-K. |
Foreign Currency Translation | Foreign Currency Translation The functional currency of our foreign operations is generally the applicable local currency. The functional currency is translated into U.S. dollars for balance sheet accounts using current exchange rates in effect as of the balance sheet date and for revenue and expense accounts using an average exchange rate during the year. The translation adjustments are deferred as a component of other comprehensive income within the consolidated statements of comprehensive income and the consolidated statements of stockholders' equity. Gains or losses resulting from transactions denominated in foreign currencies are included in other income (expense), net in our consolidated statements of comprehensive income. |
Use of Estimates | Use of Estimates 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. |
Business Combinations | Business Combinations We recognize the fair value of the assets acquired and the liabilities assumed at the acquisition date, separately from goodwill. Goodwill as of the acquisition date is measured as the excess of consideration transferred over the amount of the assets acquired and the liabilities assumed. Assets acquired include tangible and intangible assets. We use estimates and assumptions that we believe are reasonable as a part of the purchase price allocation, which includes the process to determine the value and useful lives of purchased intangible assets and the process to determine the value of any contingent consideration liabilities. We record the acquisition-date fair value of any contingent liabilities, such as earn-out provisions, as part of the consideration transferred, if present. The unsettled earn-out liability, if any, fair value is subsequently remeasured at each reporting date. While we believe these estimates and assumptions are reasonable, they are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the fair value of the assets acquired and the liabilities assumed . Any such adjustments would be recorded capital adjustment as applicable. Upon the conclusion of the measurement period or final determination of the fair values, whichever comes first, any subsequent adjustments would be recorded in our consolidated statements of comprehensive income. |
Segment Information | Segment Information Our Chief Executive Officer acts as the Company’s chief operating decision maker and reviews financial information presented on a consolidated basis for purposes of allocating resources and evaluating financial performance. There are no segment managers who are held accountable by the chief operating decision maker, or anyone else, for operations, operating results and planning for levels or components below the consolidated unit level. Accordingly, we determined we have one operating and reportable segment, which is supply chain management products. |
Concentration of Credit Risk | Concentration of Credit Risk 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. |
Cash and Cash Equivalents | Cash and Cash Equivalents Cash and cash equivalents consist of cash and highly liquid investments with original maturities of less than 90 days. |
Investments | Investments We invest in money market funds, certificates of deposit, highly liquid debt instruments of the United States (“U.S.”) government and U.S. corporate debt securities. Investments with remaining maturities of less than one year from the balance sheet date are classified as Short-term investments whereas those with remaining maturities of more than one year from the balance sheet date are classified as Investments, non-current. We determine the appropriate classification of certificates of deposit and marketable securities at the time of purchase and reevaluate such determination at each balance sheet date. Securities classified as available for sale are carried at fair value and the unrealized gains and losses on these investments, net of taxes, are included in accumulated other comprehensive loss in the consolidated balance sheets. Realized gains or losses are included in other income (expense), net in the consolidated statements of comprehensive income. Certain securities accrue interest that is included in other income (expense), net. When a determination has been made that the fair value of a marketable security is below its amortized cost basis, the portion of the unrealized loss that corresponds to a credit-related factor is realized through a credit allowance on the marketable security and the equivalent expense is realized in other income (expense), net in the consolidated statements of comprehensive income. |
Fair Value of Other Financial Instruments | Fair Value of Other Financial Instruments The carrying amounts of our short-term financial instruments, which include cash, cash equivalents, accounts receivable, and accounts payable, approximates fair value due to their short-term nature. |
Accounts Receivable | Accounts Receivable Accounts receivable are initially recorded upon the sale and invoicing of products to customers. Credit is granted in the normal course of business without collateral. Accounts receivable are stated net of allowances for credit losses, which represent estimated losses resulting from customers not making required payments on accounts receivables. When determining the allowance, we pool our outstanding accounts receivable invoices based on the contractual due date of payment. We for estimated credit losses by pool, primarily historical credit losses, additional adjustments made for current and future macro-economic conditions and retail bankruptcy trends. |
Property and Equipment | Property and Equipment Property and equipment, including assets acquired under capital lease obligations, are stated at cost, net of accumulated depreciation and amortization. Depreciation and amortization expense is calculated using the straight-line method over the estimated useful lives when placed in service. We capitalize and amortize eligible costs to acquire or develop internal-use software that are incurred during the application development stage. Costs incurred during the preliminary project stage and post-implementation stage are expensed as incurred. Amortization expense for internal-use sof t ware is calculated using the straight-line method over the estimated useful life, c ommencing on the date when the asset is ready for its intended use. The estimated useful lives of property and equipment were as follows: Estimated Useful Life Computer equipment and software 2-3 years Office equipment and furniture 5-7 years Leasehold improvements Shorter of the useful life of the asset or the remaining term of the lease Internal-use software 3 years Significant additions or improvements extending asset lives beyond one year are capitalized, while repairs and maintenance are charged to expense as incurred. Maintenance and enhancements of internal-use software are expensed as incurred. The assets and related accumulated amortization are adjusted for abandoned internal-use software with the resulting gain or loss included in our consolidated statements of comprehensive income. |
Leases | Leases We determine if an arrangement is a lease at inception. Operating leases are included in operating lease right-of-use assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. Right-of-use (“ROU”) assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. We use the implicit interest rate when readily determinable. We estimate the discount rate for a similar collateralized asset by estimating costs of borrowing. The operating lease ROU asset also includes any lease payments made and lease incentives that have been incurred. The options to extend our leases are not recognized as part of our ROU assets and lease liabilities unless it is reasonably certain that we will exercise that option. Lease expense for lease payments is recognized on a straight-line basis over the lease term. For all leases, we combine non-lease components with the related lease components and account for it as a single lease component. The ROU assets are subject to the same impairment process as our long-lived assets. Additionally, we review our lease liabilities for remeasurement whenever there is a triggering event or when relevant facts and circumstances change. |
Research and Development | Research and Development Research and development costs primarily include maintenance and data conversion activities related to our cloud-based supply chain management products and are expensed as incurred. |
Goodwill | Goodwill Goodwill represents the excess of the purchase price over the fair value of identifiable net assets acquired in business combinations. We test goodwill for impairment annually at November 30, or more frequently if events or changes in circumstances indicate that the asset might be impaired. The impairment test is conducted by comparing the fair value of the net assets with the carrying amount of the reporting unit. We determine the fair value of the reporting unit based on our market capitalization at the testing date. If the carrying amount exceeds the fair value of the reporting unit, we would recognize an impairment loss in the consolidated statements of comprehensive income, to the extent that the carrying amount exceeds fair value. |
Intangible Assets | Intangible Assets Assets acquired in business combinations may include identifiable intangible assets such as subscriber relationships and developed technology. We recognize the fair value of the identifiable intangible assets acquired separately from goodwill. We have determined the fair value and useful lives of our purchased intangible assets using certain estimates and assumptions that we believe are reasonable. The purchased intangible assets are being amortized on a straight-line basis over their estimated useful lives. The estimated useful lives for intangible were as follows: Estimated Useful Life Subscriber relationships 7-10 years Acquired technology 3-10 years |
Third Party Implementation Assets | Third-Party Implementation Assets Third-party implementation costs are capitalized assets included in Other Assets and relate to implementation costs incurred for software hosting arrangements. Capitalized implementation costs are recognized on a straight-line basis beginning when the application is ready for its intended use and ending on the expected termination date of the hosting arrangement, including consideration of the noncancelable contractual term and reasonably certain renewals. The original terms are between four and six years for our current hosting arrangements. Recognized expense is reported in general and administrative expense, which is where the hosting arrangement subscriptions are reported. |
Impairment of Long-Lived Assets | Impairment of Long-Lived Assets We review our long-lived assets for impairment whenever events or changes in circumstances indicate that the carrying amount may not be recoverable. The carrying amount of a long-lived asset is not recoverable if the carrying amount of an asset group exceeds the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the assets at the date it is tested for recoverability, whether in use or under development. An impairment loss is measured and recorded as an expense in the consolidated statements of comprehensive income as the amount by which the carrying amount of a long-lived asset exceeds its fair value. |
Revenue Recognition | Revenue Recognition Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as expect to collect, in exchange for those services. We determine revenue recognition through the following steps: • Identification of the contract, or contracts, with a customer • Identification of the performance obligations in the contract • Determination of the transaction price • Allocation of the transaction price to the performance obligations in the contract • Recognition of revenue when, or as, we satisfy a performance obligation See Note C for further descriptions of our revenue recognition policy. |
Deferred Costs | Deferred Costs Deferred costs are those that are incurred to fulfill or obtain customer contracts and that are considered incremental and recoverable costs. These consist primarily of customer implementation costs, commissions paid to sales personnel and third-party partners for customer referrals, respectively. These costs are deferred and amortized over the expected period of benefit which we have determined to be two years. Customer implementation costs are based on actual costs Sales commissions are calculated based on estimated annual recurring revenue to be generated over the customer’s initial contract period. Related amortization expense is included in sales and marketing expenses in the consolidated statements of comprehensive income. |
Stock-Based Compensation | Stock-Based Compensation We recognize the cost of all share-based payments to employees, executive officers, and non-employee members of the Company’s Board of Directors, including grants of incentive and nonqualified stock options, performance share units (“PSUs”), restricted stock awards (“RSAs”), restricted stock units (“RSUs”), deferred stock units (“DSUs”), employee stock purchase plan (“ESPP”) activity, and 401(k) stock match in the consolidated financial statements based on the grant date fair value of those awards. This cost is recognized over the period for which an employee is required to provide service in exchange for the award or the award performance period , except for expense s relating to retirement-eligible employees that have not given their required notice, which is recognized on a pro-rata basis over the notice period prior to retirement. RSAs result in the issuance of new shares when granted. For other stock-based awards, new shares are issued when the award is exercised, vested, or released according to the terms of the agreement. The fair value of stock options and ESPP activity is estimated using the Black-Scholes-Merton option valuation model. The fair value for RSAs, RSUs, and DSUs is the closing market value of the underlying stock on the date of grant less the purchase price (if any). The fair value of PSUs is estimated using a Monte Carlo simulation. In valuing share-based awards, excluding PSUs, judgment is required in determining the expected volatility of common stock and the expected term individuals will hold their share-based awards prior to exercising. The expected volatility of the options is based on the historical volatility of our common stock. Beginning with awards granted in 2020, the expected term of the options is derived from historical data on option holder exercises and post-vesting employment termination behavior. For awards granted prior to 2020, the expected term of the options was based on the simplified method. Additional valuation inputs include our expected non-issuance of future common stock dividends and the risk-free interest rate that is based on the U.S. Treasury rates at the date of grant with maturity dates approximately equaling the expected life at the grant date. For PSUs, t he Monte Carlo simulation utilizes multiple input variables that determine the probability of satisfying the performance conditions stipulated in the award. For all awards, w |
Income Taxes | Income Taxes We account for income taxes using the asset and liability method, which requires recognition of deferred tax assets and liabilities for the expected future tax consequences of events that have been included in the consolidated financial statements. Under this method, deferred tax assets and liabilities are determined based on the difference between the financial statement and tax basis of assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. Deferred tax assets are reduced by a valuation allowance when, in our judgment, it is more likely than not that some or all of the deferred tax asset will not be realized. We assess our ability to realize our deferred tax assets at the end of each reporting period. Realization of our deferred tax assets is contingent upon future taxable earnings. Accordingly, this assessment requires estimates and judgment. If the estimates of future taxable income vary from actual results, our assessment regarding the realization of these deferred tax assets could change. Future changes in the estimated amount of deferred taxes expected to be realized will be reflected in our consolidated financial statements in the period the estimate is changed, with a corresponding adjustment to our operating results. We recognize the financial statement benefit of a tax position only after determining that the relevant tax authority would “more likely than not” sustain the position following an audit. For tax positions meeting the “more likely than not” threshold, the amount recognized in the financial statements is the largest benefit that has a greater than 50% likelihood of being realized upon ultimate settlement with the relevant tax authority. It is our practice to recognize interest and penalties accrued on any unrecognized tax benefits as a component of income tax expense. |
Net Income Per Share | Net Income Per Share Basic net income per share has been computed using the weighted average number of shares of common stock outstanding during each period. Diluted net income per share also includes the impact of our outstanding potential common shares, including options, RSAs, RSUs, PSUs, DSUs and ESPP activity. Potential common shares that are anti-dilutive are excluded from the calculation of diluted net income per share. |
Accounting Pronouncements Not Yet Adopted | Accounting Pronouncements Not Yet Adopted Standard Date of Issuance Description Date of Required Adoption Effect on the Financial Statements ASU 2021-08 , Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers October 2021 This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter. January 2023 The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired. |
General (Tables)
General (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Organization Consolidation And Presentation Of Financial Statements [Abstract] | |
Summary of Estimated Useful Lives of Property and Equipment | The estimated useful lives of property and equipment were as follows: Estimated Useful Life Computer equipment and software 2-3 years Office equipment and furniture 5-7 years Leasehold improvements Shorter of the useful life of the asset or the remaining term of the lease Internal-use software 3 years |
Summary of Estimated Useful Lives of Intangible Assets | The estimated useful lives for intangible were as follows: Estimated Useful Life Subscriber relationships 7-10 years Acquired technology 3-10 years |
Business Acquisitions (Tables)
Business Acquisitions (Tables) - Genius Central [Member] | 12 Months Ended |
Dec. 31, 2021 | |
Business Acquisition [Line Items] | |
Estimated Fair Values of Assets Acquired and Liabilities Assumed at Acquisition Date | The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date: (in thousands) Estimated Fair Value Cash $ 205 Accounts receivable, net 353 Deferred tax assets 1,877 Other current and non-current assets 115 Goodwill 8,914 Intangible assets 8,500 Current liabilities (238 ) Deferred revenue (146 ) Deferred tax liabilities (2,167 ) $ 17,413 |
Estimated Fair Value of Purchased Intangible Assets and Estimated Useful Lives | The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives: Weighted Average Estimated Estimated (in thousands, except weighted average estimated useful life) Fair Value Useful Life Subscriber relationships $ 6,400 9 years Acquired technology 2,100 7 years Total $ 8,500 |
Revenue (Tables)
Revenue (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Revenue From Contract With Customer [Abstract] | |
Summary of Revenues by Revenue Stream | We derive our revenues from the following revenue streams: Year Ended December 31, (in thousands) 2021 2020 2019 Recurring revenues: Fulfillment $ 306,851 $ 251,272 $ 219,297 Analytics 42,674 38,824 37,038 Other 5,481 4,920 5,671 Recurring Revenues 355,006 295,016 262,006 One-time revenues 30,270 17,614 17,118 Total revenue $ 385,276 $ 312,630 $ 279,124 |
Summary of Deferred Revenue Liability Relating to Set-Up Fees | The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 11,118 $ 10,518 Invoiced set-up fees 15,931 11,410 Recognized set-up fees (12,590 ) (10,810 ) Balance, end of year $ 14,459 $ 11,118 |
Deferred Costs (Tables)
Deferred Costs (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Deferred Costs [Abstract] | |
Summary of Deferred Costs Activity | The deferred costs activity was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 50,595 $ 46,941 Incurred deferred costs 64,076 54,421 Amortized deferred costs (54,951 ) (50,767 ) Balance, end of year $ 59,720 $ 50,595 |
Financial Instruments (Tables)
Financial Instruments (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Financial Instruments Owned At Fair Value [Abstract] | |
Summary of Cash Equivalents and Investments | Cash equivalents and investments consisted of the following: December 31, 2021 2020 Amortized Unrealized Gains Amortized Unrealized (in thousands) Cost (Losses), net Fair Value Cost Losses, net Fair Value Cash equivalents: Money market funds $ 138,205 $ — $ 138,205 $ 112,907 $ — $ 112,907 Certificate of deposit 7,268 — 7,268 7,708 — 7,708 Marketable securities: U.S. corporate bonds — — — 5,069 (29 ) 5,040 Commercial paper 34,984 7 34,991 7,569 (55 ) 7,514 U.S. treasury securities 7,500 (1 ) 7,499 20,051 (27 ) 20,024 $ 187,957 $ 6 $ 187,963 $ 153,304 $ (111 ) $ 153,193 Maturing within one year $ 187,963 $ 150,693 Maturing within one to two years — 2,500 Total $ 187,963 $ 153,193 |
Summary of Fair Value Hierarchy Assets and Liabilities Measured at Fair Value on a Recurring Basis | The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis: December 31, 2021 (in thousands) Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 138,205 $ — $ — $ 138,205 Certificate of deposit 7,268 — — 7,268 Marketable securities: U.S. corporate bonds — — — — Commercial paper — 34,991 — 34,991 U.S. treasury securities — 7,499 — 7,499 $ 145,473 $ 42,490 $ — $ 187,963 December 31, 2020 (in thousands) Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 112,907 $ — $ — $ 112,907 Certificate of deposit 7,708 — — 7,708 Marketable securities: U.S. corporate bonds — 5,040 — 5,040 Commercial paper — 7,514 — 7,514 U.S. treasury securities — 20,024 — 20,024 $ 120,615 $ 32,578 $ — $ 153,193 Liabilities: Contingent consideration $ — $ — $ 1,878 $ 1,878 $ — $ — $ 1,878 $ 1,878 |
Allowance for Credit Losses (Ta
Allowance for Credit Losses (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Receivables [Abstract] | |
Schedule of Allowance for Credit Losses Activity Included in Accounts Receivable Net | The allowance for credit losses activity, included in accounts receivable, net, was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Balance, beginning of year $ 4,233 $ 1,469 $ 1,392 Provision for credit losses 4,717 5,660 3,499 Write-offs, net of recoveries (4,790 ) (4,319 ) (3,422 ) Initial allowance for business combination acquired receivables 89 354 — Adoption of ASU 2016-13 — 1,069 — Balance, end of year $ 4,249 $ 4,233 $ 1,469 |
Property and Equipment, net (Ta
Property and Equipment, net (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Property Plant And Equipment [Abstract] | |
Schedule of Property and Equipment, Net | Property and equipment, net consisted of the following: December 31, (in thousands) 2021 2020 Internally developed software $ 44,981 $ 33,565 Computer equipment 29,329 29,660 Office equipment and furniture 10,972 9,613 Leasehold improvements 16,685 12,746 Property and equipment, cost 101,967 85,584 Less: accumulated depreciation and amortization (70,066 ) (59,152 ) Total property and equipment, net $ 31,901 $ 26,432 |
Schedule of Depreciation and Amortization Expense of Property and Equipment | Depreciation and amortization expense of property and equipment was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Depreciation and amortization expense $ 14,788 $ 13,127 $ 11,123 |
Goodwill and Intangible Asset_2
Goodwill and Intangible Assets, net (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Goodwill And Intangible Assets Disclosure [Abstract] | |
Schedule of Activity in Goodwill | The activity in goodwill was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 134,853 $ 76,845 Additions from business acquisitions 8,914 56,960 Remeasurement from provisional purchase accounting amount 268 — Foreign currency translation (372 ) 1,048 Balance, end of year $ 143,663 $ 134,853 |
Intangible Assets | Intangible Assets Intangible assets, net consisted of the following: December 31, 2021 (in thousands, except weighted average amortization period) Gross Carrying Amount Accumulated Amortization Foreign Currency Translation Net Weighted Average Remaining Amortization Period Subscriber relationships $ 61,270 $ (29,866 ) $ (1,395 ) $ 30,009 6 years Acquired technology 35,316 (6,738 ) — 28,578 7 years $ 96,586 $ (36,604 ) $ (1,395 ) $ 58,587 7 years December 31, 2020 (in thousands, except weighted average amortization period) Gross Carrying Amount Accumulated Amortization Foreign Currency Translation Net Weighted Average Remaining Amortization Period Subscriber relationships $ 54,447 $ (24,792 ) $ 101 $ 29,756 6 years Non-competition agreements 698 (691 ) (4 ) 3 0 years Acquired technology 33,195 (2,724 ) — 30,471 8 years $ 88,340 $ (28,207 ) $ 97 $ 60,230 7 years |
Estimated Annual Amortization Expense Related to Intangible Assets | The estimated future annual amortization expense related to intangible assets is as follows: (in thousands) 2022 $ 9,883 2023 9,808 2024 8,534 2025 8,396 2026 7,392 Thereafter 14,574 Total future amortization $ 58,587 |
Other Assets (Tables)
Other Assets (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Other Assets [Abstract] | |
Summary of Activity in Capitalized Implementation Costs for Software Hosting Arrangements | The activity in the capitalized implementation costs for software hosting arrangements was as follows: Year Ended December 31, (in thousands) 2021 2020 Balance, beginning of year $ 1,181 $ 1,166 Capitalized implementation fees 130 127 Amortization of implementation fees (229 ) (112 ) Balance, end of year $ 1,082 $ 1,181 |
Commitments and Contingencies (
Commitments and Contingencies (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Commitments And Contingencies Disclosure [Abstract] | |
Summary of Non-Cancellable Operating Leases, Primarily for Office Space | We are obligated under non-cancellable operating leases, primarily for office space, as follows: December 31, 2021 December 31, 2020 (in thousands, except remaining term) Right-of-Use Asset Remaining Term Right-of-Use Asset Remaining Term Minneapolis, MN lease $ 6,837 5 years $ 10,992 6 years Kyiv, Ukraine lease 1,530 3 years 1,930 4 years Other leases 2,484 <1 - 5 years 2,659 <1 - 5 years $ 10,851 $ 15,581 |
Components of Lease Expense | The components of lease expense were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Operating lease cost $ 3,089 $ 2,719 $ 2,569 Variable lease cost 3,660 3,578 3,390 $ 6,749 $ 6,297 $ 5,959 |
Schedule of Supplemental Cash Flow Information Related to Leases | Supplemental cash flow information related to leases was as follows: December 31, (in thousands) 2021 2020 Cash paid for amounts included in the measurement of lease liabilities Operating cash flows from operating leases $ 3,757 $ 4,134 Right-of-use assets obtained in exchange for operating lease liabilities 992 12,801 |
Schedule of Supplemental Balance Sheet Information Related to Leases | Supplemental balance sheet information related to leases was as follows: December 31, 2021 December 31, 2020 Weighted-average remaining lease term - operating leases 4.8 years 5.6 years Weighted-average discount rate - operating leases 4.0 % 4.1 % |
Schedule of Future Minimum Payments Under Operating Leases | At December 31, 2021, our future minimum payments under operating leases were as follows: (in thousands) 2022 $ 4,865 2023 4,687 2024 4,257 2025 3,859 2026 3,772 Thereafter 1,269 Total future payments 22,709 Less: imputed interest (2,175 ) Total operating lease liabilities $ 20,534 |
Stockholders' Equity (Tables)
Stockholders' Equity (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Equity [Abstract] | |
Summary of Stock Repurchase Program Plans and Activity | Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the plans and activity thereunder was as follows: (in thousands) Effective Date Expiration Date Share Value Authorized for Repurchase Share Value Repurchased Unused & Expired Share Repurchase Value Share Value Available for Future Repurchase 2017 Program Nov. 2017 Nov. 2019 $ 50,000 $ 46,297 $ 3,703 N/A 2019 Program Nov. 2019 Nov. 2021 50,000 29,611 20,389 N/A 2021 Program Nov. 2021 Nov. 2023 50,000 9,769 N/A $ 40,231 |
Summary of Stock Repurchase Activity by Year | The stock repurchase activity by year was as follows: Year Ended December 31, (in thousands, except share data) 2021 2020 2019 Shares repurchased cost $ 20,430 $ 18,950 $ 20,618 Shares repurchased 176,103 371,902 417,564 |
Stock-Based Compensation (Table
Stock-Based Compensation (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |
Stock-Based Compensation Expense | Stock-based compensation expense was allocated in the consolidated statements of comprehensive income as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Cost of revenues $ 6,760 $ 3,948 $ 2,819 Operating expenses Sales and marketing 6,248 4,119 2,946 Research and development 4,384 3,626 2,651 General and administrative 10,182 7,243 6,274 $ 27,574 $ 18,936 $ 14,690 Stock-based compensation expense by grant type or plan was as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Stock options $ 2,057 $ 2,232 $ 3,211 PSUs 6,417 3,219 1,379 RSUs 15,388 10,367 7,553 RSAs & DSUs 434 446 519 ESPP 1,391 1,117 701 401(k) stock match 1,887 1,555 1,327 $ 27,574 $ 18,936 $ 14,690 |
Stock Option Activity | Our stock option activity was as follows: Weighted Average Options Exercise Price (#) ($/share) Outstanding at December 31, 2018 1,746,468 25.93 Granted 184,434 53.92 Exercised (346,098 ) 21.98 Forfeited (40,892 ) 30.74 Outstanding at December 31, 2019 1,543,912 30.03 Granted 127,974 59.02 Exercised (712,074 ) 26.11 Forfeited (14,926 ) 43.14 Outstanding at December 31, 2020 944,886 36.71 Granted 53,223 105.53 Exercised (311,378 ) 30.10 Forfeited (8,081 ) 68.62 Outstanding at December 31, 2021 678,650 44.76 |
Summary of Additional Information Related to Stock Options | The table below presents additional information related to our stock options: Year Ended December 31, (in thousands, except per share data) 2021 2020 2019 Fair value of options vested $ 2,509 $ 3,000 $ 3,393 Intrinsic value of options exercised 27,713 31,737 11,103 Intrinsic value of options outstanding 66,235 67,918 39,194 Weighted-average fair value per share of options granted 31.31 16.18 16.86 |
Weighted Average Fair Value Per Share of Options Granted, Assumptions | The fair values of the options granted were estimated on the date of grant using the following weighted-average assumptions: Year Ended December 31, 2021 2020 2019 Volatility 35 % 33 % 33 % Dividend yield — — — Life (in years) 4.4 4.0 4.4 Risk-free interest rate 0.59 % 0.99 % 2.41 % |
PSU, RSU, RSA, and DSU | Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows: Weighted Average Grant Date Fair (#) Value ($/share) Outstanding at December 31, 2018 758,334 29.99 Granted 288,462 55.69 Vested and common stock issued (217,424 ) 31.05 Forfeited (31,826 ) 34.67 Outstanding at December 31, 2019 797,546 38.80 Granted 331,264 62.78 Vested and common stock issued (222,606 ) 36.06 Forfeited (167,782 ) 30.09 Outstanding at December 31, 2020 738,422 52.37 Granted 314,290 101.85 Vested and common stock issued (331,669 ) 44.14 Forfeited (18,883 ) 66.35 Outstanding at December 31, 2021 702,160 78.03 |
Summary of ESPP Activity | Our ESPP activity was as follows: Year Ended December 31, (in thousands, except share data) 2021 2020 2019 Amounts for shares purchased $ 4,737 $ 3,374 $ 2,270 Shares purchased 55,726 61,833 58,851 |
Fair Value Estimation of Common Stock, Assumptions | The fair value was estimated based on the market price of our common stock at the beginning of each offering period using the following assumptions: Year Ended December 31, 2021 2020 2019 Volatility 32 % 43 % 36 % Dividend yield — — — Life (in years) 0.50 0.50 0.50 Risk-free interest rate 0.07 % 0.96 % 2.36 % |
Income Taxes (Tables)
Income Taxes (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Income Tax Disclosure [Abstract] | |
Schedule of Provision for Income Taxes | Our provision for income taxes was comprised of the following components: Year Ended December 31, (in thousands) 2021 2020 2019 Current Federal $ 1,559 $ - $ - State 1,890 1,249 599 Foreign 1,610 1,608 169 Deferred Federal 4,294 4,462 6,595 State (88 ) 244 1,156 Foreign (321 ) (469 ) (161 ) $ 8,944 $ 7,094 $ 8,358 |
Schedule of Income Tax Expense Differed from Amounts Computed by applying U.S. Federal Income Tax Rate to Pretax Income | Our income tax expense differed from the amounts computed by applying the U.S. federal income tax rate to pretax income as a result of the following: Year Ended December 31, 2021 2020 2019 U.S. statutory federal income tax rate 21.0 % 21.0 % 21.0 % Increase (decrease) resulting from: U.S. state income taxes, net of federal tax effect 4.5 4.5 4.6 Tax impact of stock activity (12.8 ) (12.9 ) (6.0 ) Nondeductible compensation 5.0 1.8 2.2 Research and development credit (1.1 ) (0.6 ) (3.0 ) Foreign derived intangible income (1.3 ) (1.3 ) - Other 1.4 1.0 1.1 Effective tax rate 16.7 % 13.5 % 19.9 % |
Significant Components of Deferred Tax Assets (Liabilities) | The significant components of our deferred tax assets and liabilities were as follows: December 31, (in thousands) 2021 2020 Deferred tax assets Net operating loss and credit carryforwards $ 4,828 $ 4,539 Stock-based compensation expense 3,934 3,605 Accounts receivable allowances 1,336 1,228 Accrued expenses 5,174 3,200 Deferred revenue 1,300 695 Operating lease liabilities 5,235 5,435 Other 142 660 Gross deferred tax assets 21,949 19,362 Less: valuation allowance (1,815 ) (1,582 ) Total net deferred tax assets 20,134 17,780 Deferred tax liabilities Deferred costs $ (15,126 ) $ (12,561 ) Right-of-use assets (2,787 ) (3,754 ) Foreign operations (364 ) (228 ) Depreciation and amortization (8,820 ) (3,980 ) Other — — Total deferred tax liabilities (27,097 ) (20,523 ) Net deferred tax liabilities $ (6,963 ) $ (2,743 ) |
Other Income (Tables)
Other Income (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Other Income And Expenses [Abstract] | |
Summary of Other Income (Expense), Net | Other income (expense), net included the following: Year Ended December 31, (in thousands) 2021 2020 2019 Investment income $ 278 $ 1,208 $ 2,947 Realized gain (loss) from foreign currency on cash and investments held (1,456 ) 1,753 - Change in earn-out liability - (85 ) (445 ) Other (366 ) (354 ) 1,162 Total other income (expense), net $ (1,544 ) $ 2,522 $ 3,664 |
Net Income Per Share (Tables)
Net Income Per Share (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Earnings Per Share [Abstract] | |
Components of Computation of Basic and Diluted Net Income Per Share | The components and calculation of basic and diluted net income per share were as follows: Year Ended December 31, (in thousands, except per share amounts) 2021 2020 2019 Numerator Net income $ 44,597 $ 45,586 $ 33,712 Denominator Weighted average common shares outstanding, basic 35,928 35,226 35,024 Options to purchase common stock 529 611 680 PSUs, RSUs, RSAs, and DSUs 505 448 298 Weighted average common shares outstanding, diluted 36,962 36,285 36,002 Net income per share Basic $ 1.24 $ 1.29 $ 0.96 Diluted $ 1.21 $ 1.26 $ 0.94 |
Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share | The number of the outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Antidilutive shares 31 26 181 |
Retirement Savings Plan (Tables
Retirement Savings Plan (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Compensation And Retirement Disclosure [Abstract] | |
Schedule of Total Contribution to the Plan | Our total contributions to the plan were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Retirement contributions $ 4,790 $ 3,889 $ 3,306 |
Geographic Information (Tables)
Geographic Information (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Revenue From Contract With Customer [Abstract] | |
Summary of Domestic Revenue | The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S was as follows: Year Ended December 31, 2021 2020 2019 Domestic revenue 84 % 85 % 85 % |
Summary of Percentage of Property and Equipment Net Located at Subsidiary and Office Locations Outside of Unites States | The percentage of property and equipment, net located at subsidiary and office locations outside of the United States was as follows: December 31, 2021 2020 International property and equipment 12 % 15 % |
Related Party Transactions (Tab
Related Party Transactions (Tables) | 12 Months Ended |
Dec. 31, 2021 | |
Related Party Transactions [Abstract] | |
Summary of Contributions to Foundation | Our contributions to the Foundation were as follows: Year Ended December 31, (in thousands) 2021 2020 2019 Foundation contributions $ 2,400 $ 1,800 $ 10 |
General - Additional Informatio
General - Additional Information (Detail) - Segment | Aug. 08, 2019 | Dec. 31, 2021 |
Schedule of Accounting Policies [Line Items] | ||
Stock split ratio | 2 | |
Percentage of stock dividend from stock split | 100.00% | |
Number of reportable segment | 1 | |
Number of operating segment | 1 | |
Deferred commission expected amortization period | 2 years | |
Minimum [Member] | ||
Schedule of Accounting Policies [Line Items] | ||
Hosting services arrangement period | 4 years | |
Maximum [Member] | ||
Schedule of Accounting Policies [Line Items] | ||
Hosting services arrangement period | 6 years |
General - Summary of Estimated
General - Summary of Estimated Useful Lives of Property and Equipment (Detail) | 12 Months Ended |
Dec. 31, 2021 | |
Computer Equipment and Software [Member] | Minimum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment | 2 years |
Computer Equipment and Software [Member] | Maximum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment | 3 years |
Office Equipment and Furniture [Member] | Minimum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment | 5 years |
Office Equipment and Furniture [Member] | Maximum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment | 7 years |
Leasehold Improvements [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment description | Shorter of the useful life of the asset or the remaining term of the lease |
Internal-use Software [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of property and equipment | 3 years |
General - Summary of Estimate_2
General - Summary of Estimated Useful Lives of Intangible Assets (Detail) | 12 Months Ended |
Dec. 31, 2021 | |
Subscriber Relationships [Member] | Minimum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of intangible assets | 7 years |
Subscriber Relationships [Member] | Maximum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of intangible assets | 10 years |
Acquired Technology [Member] | Minimum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of intangible assets | 3 years |
Acquired Technology [Member] | Maximum [Member] | |
Schedule of Accounting Policies [Line Items] | |
Estimated useful lives of intangible assets | 10 years |
Business Acquisitions - Additio
Business Acquisitions - Additional Information (Detail) - USD ($) $ in Millions | Nov. 03, 2021 | Dec. 31, 2021 |
Genius Central [Member] | ||
Business Acquisition [Line Items] | ||
Total transaction price | $ 17.4 | |
Payments to acquire businesses, gross | 17.3 | |
Business combination due to sellers related within initial net working capital adjustment | $ 0.1 | |
Data Masons [Member] | ||
Business Acquisition [Line Items] | ||
Business combination due to sellers related within initial net working capital adjustment | $ 0.3 |
Business Acquisitions - Estimat
Business Acquisitions - Estimated Fair Values of Assets Acquired and Liabilities Assumed at Acquisition Date (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Nov. 03, 2021 | Dec. 31, 2020 | Dec. 31, 2019 |
Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net | ||||
Goodwill | $ 143,663 | $ 134,853 | $ 76,845 | |
Genius Central [Member] | ||||
Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net | ||||
Cash | $ 205 | |||
Accounts receivable, net | 353 | |||
Deferred tax assets | 1,877 | |||
Other current and non-current assets | 115 | |||
Goodwill | 8,914 | |||
Intangible assets | 8,500 | |||
Current liabilities | (238) | |||
Deferred revenue | (146) | |||
Deferred tax liabilities | (2,167) | |||
Total purchase price | $ 17,413 |
Business Acquisitions - Estim_2
Business Acquisitions - Estimated Fair Value of Purchased Intangible Assets and Estimated Useful Lives (Detail) - Genius Central [Member] $ in Thousands | Nov. 03, 2021USD ($) |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 8,500 |
Acquired Technology [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 2,100 |
Weighted Average Estimated Useful Life | 7 years |
Subscriber Relationships [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 6,400 |
Weighted Average Estimated Useful Life | 9 years |
Revenue - Summary of Revenues b
Revenue - Summary of Revenues by Revenue Stream (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Revenue Recognition [Line Items] | |||
Revenues | $ 385,276 | $ 312,630 | $ 279,124 |
Recurring Revenues [Member] | |||
Revenue Recognition [Line Items] | |||
Revenues | 355,006 | 295,016 | 262,006 |
One-time Revenues [Member] | |||
Revenue Recognition [Line Items] | |||
Revenues | 30,270 | 17,614 | 17,118 |
Fulfillment [Member] | Recurring Revenues [Member] | |||
Revenue Recognition [Line Items] | |||
Revenues | 306,851 | 251,272 | 219,297 |
Analytics [Member] | Recurring Revenues [Member] | |||
Revenue Recognition [Line Items] | |||
Revenues | 42,674 | 38,824 | 37,038 |
Other [Member] | Recurring Revenues [Member] | |||
Revenue Recognition [Line Items] | |||
Revenues | $ 5,481 | $ 4,920 | $ 5,671 |
Revenue - Additional Informatio
Revenue - Additional Information (Detail) $ in Millions | 12 Months Ended |
Dec. 31, 2021USD ($) | |
Disaggregation Of Revenue [Line Items] | |
Latest timing of billings | 30 days |
Estimated period for material rights present to customers | 2 years |
Set up fees recognized period | 2 years |
Maximum recognition period for miscellaneous one-time fee | 1 year |
Deferred revenue | $ 37.9 |
Minimum [Member] | |
Disaggregation Of Revenue [Line Items] | |
Customer contract cancellation period | 30 days |
Maximum [Member] | |
Disaggregation Of Revenue [Line Items] | |
Customer contract cancellation period | 90 days |
Deferred revenue recognition period | 1 year |
Contract period for remaining performance obligations for contracts in which the optional exemption under ASC 606-10-50-14(a) was applied | 1 year |
Revenue - Summary of Deferred R
Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) - Set-Up Fees [Member] - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Deferred Revenue Arrangement [Line Items] | ||
Balance, beginning of year | $ 11,118 | $ 10,518 |
Invoiced set-up fees | 15,931 | 11,410 |
Recognized set-up fees | (12,590) | (10,810) |
Balance, end of year | $ 14,459 | $ 11,118 |
Deferred Costs - Summary of Def
Deferred Costs - Summary of Deferred Costs Activity (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Deferred Costs [Abstract] | ||
Balance, beginning of year | $ 50,595 | $ 46,941 |
Incurred deferred costs | 64,076 | 54,421 |
Amortized deferred costs | (54,951) | (50,767) |
Balance, end of year | $ 59,720 | $ 50,595 |
Financial Instruments - Summary
Financial Instruments - Summary of Cash Equivalents and Investments (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | $ 187,957 | $ 153,304 |
Unrealized Gains (Losses), net | 6 | (111) |
Fair Value | 187,963 | 153,193 |
Maturing within one year | 187,963 | 150,693 |
Maturing within one to two years | 2,500 | |
Money Market Funds [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 138,205 | 112,907 |
Fair Value | 138,205 | 112,907 |
Certificates of Deposit [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 7,268 | 7,708 |
Fair Value | 7,268 | 7,708 |
U.S. Corporate Bonds [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 5,069 | |
Unrealized Gains (Losses), net | (29) | |
Fair Value | 5,040 | |
Commercial Paper [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 34,984 | 7,569 |
Unrealized Gains (Losses), net | 7 | (55) |
Fair Value | 34,991 | 7,514 |
U.S. Treasury Securities [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 7,500 | 20,051 |
Unrealized Gains (Losses), net | (1) | (27) |
Fair Value | $ 7,499 | $ 20,024 |
Financial Instruments - Summa_2
Financial Instruments - Summary of Fair Value Hierarchy Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring [Member] - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | $ 187,963 | $ 153,193 |
Liabilities fair value | 1,878 | |
Level 1 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 145,473 | 120,615 |
Level 2 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 42,490 | 32,578 |
Level 3 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Liabilities fair value | 1,878 | |
Money Market Funds [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 138,205 | 112,907 |
Money Market Funds [Member] | Level 1 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 138,205 | 112,907 |
Certificates of Deposit [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 7,268 | 7,708 |
Certificates of Deposit [Member] | Level 1 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 7,268 | 7,708 |
U.S. Corporate Bonds [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 5,040 | |
U.S. Corporate Bonds [Member] | Level 2 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 5,040 | |
Commercial Paper [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 34,991 | 7,514 |
Commercial Paper [Member] | Level 2 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 34,991 | 7,514 |
U.S. Treasury Securities [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | 7,499 | 20,024 |
U.S. Treasury Securities [Member] | Level 2 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Assets fair value | $ 7,499 | 20,024 |
Contingent Consideration Liability | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Liabilities fair value | 1,878 | |
Contingent Consideration Liability | Level 3 [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Liabilities fair value | $ 1,878 |
Financial Instruments - Additio
Financial Instruments - Additional Information (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Payment contingent consideration liability | $ 2,042 | $ 688 |
Data Masons [Member] | PPP Loan [Member] | Former Owners [Member] | ||
Fair Value Balance Sheet Grouping Financial Statement Captions [Line Items] | ||
Contingent consideration liability | 1,900 | |
Payment contingent consideration liability | $ 1,900 |
Allowance for Credit Losses - S
Allowance for Credit Losses - Schedule of Allowance for Credit Losses Activity Included in Accounts Receivable Net (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Allowance For Credit Loss [Abstract] | |||
Balance, beginning of year | $ 4,233 | $ 1,469 | $ 1,392 |
Provision for credit losses | 4,717 | 5,660 | 3,499 |
Write-offs, net of recoveries | (4,790) | (4,319) | (3,422) |
Initial allowance for business combination acquired receivables | 89 | 354 | |
Adoption of ASU 2016-13 | 1,069 | ||
Balance, end of year | $ 4,249 | $ 4,233 | $ 1,469 |
Property and Equipment, net - S
Property and Equipment, net - Schedule of Property and Equipment, Net (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Property, Plant and Equipment [Line Items] | ||
Property and equipment, cost | $ 101,967 | $ 85,584 |
Less: accumulated depreciation and amortization | (70,066) | (59,152) |
Total property and equipment, net | 31,901 | 26,432 |
Internally Developed Software [Member] | ||
Property, Plant and Equipment [Line Items] | ||
Property and equipment, cost | 44,981 | 33,565 |
Computer Equipment [Member] | ||
Property, Plant and Equipment [Line Items] | ||
Property and equipment, cost | 29,329 | 29,660 |
Office Equipment and Furniture [Member] | ||
Property, Plant and Equipment [Line Items] | ||
Property and equipment, cost | 10,972 | 9,613 |
Leasehold Improvements [Member] | ||
Property, Plant and Equipment [Line Items] | ||
Property and equipment, cost | $ 16,685 | $ 12,746 |
Property and Equipment, net -_2
Property and Equipment, net - Schedule of Depreciation and Amortization Expense of Property and Equipment (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Property Plant And Equipment [Abstract] | |||
Depreciation and amortization of property and equipment | $ 14,788 | $ 13,127 | $ 11,123 |
Goodwill and Intangible Asset_3
Goodwill and Intangible Assets, net - Schedule of Activity in Goodwill (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Goodwill And Intangible Assets Disclosure [Abstract] | ||
Balance, beginning of year | $ 134,853 | $ 76,845 |
Additions from business acquisitions | 8,914 | 56,960 |
Remeasurement from provisional purchase accounting amount | 268 | |
Foreign currency translation | (372) | 1,048 |
Balance, end of year | $ 143,663 | $ 134,853 |
Goodwill and Intangible Asset_4
Goodwill and Intangible Assets, net - Intangible Assets (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | $ 96,586 | $ 88,340 |
Accumulated Amortization | (36,604) | (28,207) |
Foreign Currency Translation | (1,395) | 97 |
Net | $ 58,587 | $ 60,230 |
Weighted Average Remaining Amortization Period | 7 years | 7 years |
Subscriber Relationships [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | $ 61,270 | $ 54,447 |
Accumulated Amortization | (29,866) | (24,792) |
Foreign Currency Translation | (1,395) | 101 |
Net | $ 30,009 | $ 29,756 |
Weighted Average Remaining Amortization Period | 6 years | 6 years |
Acquired Technology [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | $ 35,316 | $ 33,195 |
Accumulated Amortization | (6,738) | (2,724) |
Net | $ 28,578 | $ 30,471 |
Weighted Average Remaining Amortization Period | 7 years | 8 years |
Non-competition Agreements [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | $ 698 | |
Accumulated Amortization | (691) | |
Foreign Currency Translation | (4) | |
Net | $ 3 | |
Weighted Average Remaining Amortization Period | 0 years |
Goodwill and Intangible Asset_5
Goodwill and Intangible Assets, net - Estimated Future Annual Amortization Expense Related to Intangible Assets (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Goodwill And Intangible Assets Disclosure [Abstract] | ||
2022 | $ 9,883 | |
2023 | 9,808 | |
2024 | 8,534 | |
2025 | 8,396 | |
2026 | 7,392 | |
Thereafter | 14,574 | |
Net | $ 58,587 | $ 60,230 |
Other Assets - Summary of Activ
Other Assets - Summary of Activity in Capitalized Implementation Costs for Software Hosting Arrangements (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Capitalized Computer Software Net [Abstract] | ||
Balance, beginning of year | $ 1,181 | $ 1,166 |
Capitalized implementation fees | 130 | 127 |
Amortization of implementation fees | (229) | (112) |
Balance, end of year | $ 1,082 | $ 1,181 |
Commitments and Contingencies -
Commitments and Contingencies - Summary of Non-Cancellable Operating Leases, Primarily for Office Space (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Lessee Lease Description [Line Items] | ||
Right-of-Use Asset | $ 10,851 | $ 15,581 |
Minneapolis, MN Lease [Member] | ||
Lessee Lease Description [Line Items] | ||
Right-of-Use Asset | $ 6,837 | $ 10,992 |
Remaining Term | 5 years | 6 years |
Kyiv, Ukraine Lease [Member] | ||
Lessee Lease Description [Line Items] | ||
Right-of-Use Asset | $ 1,530 | $ 1,930 |
Remaining Term | 3 years | 4 years |
Other Leases [Member] | ||
Lessee Lease Description [Line Items] | ||
Right-of-Use Asset | $ 2,484 | $ 2,659 |
Other Leases [Member] | Minimum [Member] | ||
Lessee Lease Description [Line Items] | ||
Remaining Term | 1 year | 1 year |
Other Leases [Member] | Maximum [Member] | ||
Lessee Lease Description [Line Items] | ||
Remaining Term | 5 years | 5 years |
Commitments and Contingencies_2
Commitments and Contingencies - Additional Information (Detail) $ in Millions | 1 Months Ended | 12 Months Ended | |
Dec. 31, 2019ft²Option | Dec. 31, 2020ft²Option | Dec. 31, 2021USD ($) | |
Commitments And Contingencies [Line Items] | |||
Remaining purchase commitment | $ | $ 9.9 | ||
Kyiv, Ukraine Lease [Member] | |||
Commitments And Contingencies [Line Items] | |||
Number of options to extend term of the lease | Option | 1 | ||
Lease extension period, number of years | 5 years 6 months | ||
Kyiv, Ukraine Lease [Member] | Lease Agreement Expires on May 31, 2025 [Member] | |||
Commitments And Contingencies [Line Items] | |||
Current leased space | ft² | 17,000 | ||
Lease agreement expires, year | 2025 | ||
Current Headquarters [Member] | |||
Commitments And Contingencies [Line Items] | |||
Lease agreement expires, year | 2027 | ||
Number of options to extend term of the lease | Option | 2 | ||
Lease extension period, number of years | 5 years | ||
Current Headquarters [Member] | Minneapolis, Minnesota [Member] | |||
Commitments And Contingencies [Line Items] | |||
Current leased space | ft² | 198,000 |
Commitments and Contingencies_3
Commitments and Contingencies - Components of Lease Expense (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Leases [Abstract] | |||
Operating lease cost | $ 3,089 | $ 2,719 | $ 2,569 |
Variable lease cost | 3,660 | 3,578 | 3,390 |
Lease expense | $ 6,749 | $ 6,297 | $ 5,959 |
Commitments and Contingencies_4
Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) - USD ($) $ in Thousands | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Cash paid for amounts included in the measurement of lease liabilities | ||
Operating cash flows from operating leases | $ 3,757 | $ 4,134 |
Right-of-use assets obtained in exchange for operating lease liabilities | $ 992 | $ 12,801 |
Commitments and Contingencies_5
Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail) | Dec. 31, 2021 | Dec. 31, 2020 |
Leases [Abstract] | ||
Weighted-average remaining lease term - operating leases | 4 years 9 months 18 days | 5 years 7 months 6 days |
Weighted-average discount rate - operating leases | 4.00% | 4.10% |
Commitments and Contingencies_6
Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail) $ in Thousands | Dec. 31, 2021USD ($) |
Leases [Abstract] | |
2022 | $ 4,865 |
2023 | 4,687 |
2024 | 4,257 |
2025 | 3,859 |
2026 | 3,772 |
Thereafter | 1,269 |
Total future payments | 22,709 |
Less: imputed interest | (2,175) |
Total operating lease liabilities | $ 20,534 |
Stockholders' Equity - Summary
Stockholders' Equity - Summary of Stock Repurchase Program Plans and Activity (Details) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Class Of Stock [Line Items] | |||
Share Value Repurchased | $ 20,430 | $ 18,950 | $ 20,618 |
2017 Program [Member] | Common Stock [Member] | |||
Class Of Stock [Line Items] | |||
Effective Date | Nov. 30, 2017 | ||
Expiration Date | Nov. 30, 2019 | ||
Share Value Authorized for Repurchase | $ 50,000 | ||
Share Value Repurchased | 46,297 | ||
Unused & Expired Share Repurchase Value | $ 3,703 | ||
2019 Program [Member] | Common Stock [Member] | |||
Class Of Stock [Line Items] | |||
Effective Date | Nov. 30, 2019 | ||
Expiration Date | Nov. 30, 2021 | ||
Share Value Authorized for Repurchase | $ 50,000 | ||
Share Value Repurchased | 29,611 | ||
Unused & Expired Share Repurchase Value | $ 20,389 | ||
2021 Program [Member] | Common Stock [Member] | |||
Class Of Stock [Line Items] | |||
Effective Date | Nov. 30, 2021 | ||
Expiration Date | Nov. 30, 2023 | ||
Share Value Authorized for Repurchase | $ 50,000 | ||
Share Value Repurchased | 9,769 | ||
Share Value Available for Future Repurchase | $ 40,231 |
Stockholders' Equity - Summar_2
Stockholders' Equity - Summary of Stock Repurchase Activity by Year (Details) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Class Of Stock [Line Items] | |||
Shares repurchased cost | $ 20,430 | $ 18,950 | $ 20,618 |
Common Stock [Member] | |||
Class Of Stock [Line Items] | |||
Shares repurchased | 176,103 | 371,902 | 417,564 |
Stock Repurchase Program [Member] | Common Stock [Member] | |||
Class Of Stock [Line Items] | |||
Shares repurchased cost | $ 20,430 | $ 18,950 | $ 20,618 |
Shares repurchased | 176,103 | 371,902 | 417,564 |
Stock-Based Compensation - Addi
Stock-Based Compensation - Additional Information (Detail) $ / shares in Units, $ in Millions | 12 Months Ended | |||
Dec. 31, 2021USD ($)Offering$ / sharesshares | Dec. 31, 2020 | Dec. 31, 2019 | Dec. 31, 2017 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Shares available for grant | 13,500,000 | |||
Unrecognized stock-based compensation expense | $ | $ 30.4 | |||
Unrecognized stock-based compensation, expected to be recognized, weighted average period | 2 years 3 months 18 days | |||
Vesting period | 1 year | |||
Employee Stock Purchase Plan [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Number of offerings per year | Offering | 2 | |||
Common stock reserved for future issuance | 1,800,000 | |||
Maximum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Period of delayed receipt of common shares | 10 years | |||
Maximum [Member] | Employee Stock Purchase Plan [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Purchase price as a percentage of fair market value | 85.00% | |||
Stock Options [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Vesting period | 4 years | |||
Outstanding and exercisable options | 500,000 | |||
Weighted average exercise price | $ / shares | $ 38.72 | |||
Weighted average remaining contractual life | 3 years 3 months 18 days | |||
Stock Options [Member] | Minimum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Stock options contractual term range | 7 years | |||
Performance Share Unit [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Vesting period | 3 years | 3 years | 3 years | 3 years |
Shares of common stock issued | 100,000 | |||
Restricted Stock Units [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Vesting period | 4 years | |||
Restricted Stock Award [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Vesting period | 1 year | |||
PSU, RSU and DSU [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | ||||
Number of shares vested and not issued during the period | 100,000 |
Stock-Based Compensation - Stoc
Stock-Based Compensation - Stock-Based Compensation Expense (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | $ 27,574 | $ 18,936 | $ 14,690 |
Stock Options [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 2,057 | 2,232 | 3,211 |
PSUs [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 6,417 | 3,219 | 1,379 |
RSUs [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 15,388 | 10,367 | 7,553 |
RSAs & DSUs [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 434 | 446 | 519 |
ESPP [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 1,391 | 1,117 | 701 |
401(k) Stock Match [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 1,887 | 1,555 | 1,327 |
Cost of Revenues [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 6,760 | 3,948 | 2,819 |
Sales and Marketing [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 6,248 | 4,119 | 2,946 |
Research and Development [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | 4,384 | 3,626 | 2,651 |
General and Administrative [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | |||
Stock-based compensation expense | $ 10,182 | $ 7,243 | $ 6,274 |
Stock-Based Compensation - St_2
Stock-Based Compensation - Stock Option Activity (Detail) - $ / shares | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |||
Options Outstanding, Beginning balance | 944,886 | 1,543,912 | 1,746,468 |
Options, Granted | 53,223 | 127,974 | 184,434 |
Options, Exercised | (311,378) | (712,074) | (346,098) |
Options, Forfeited | (8,081) | (14,926) | (40,892) |
Options Outstanding, Ending balance | 678,650 | 944,886 | 1,543,912 |
Weighted Average Exercise Price, Outstanding, Beginning Balance | $ 36.71 | $ 30.03 | $ 25.93 |
Weighted Average Exercise Price, Granted | 105.53 | 59.02 | 53.92 |
Weighted Average Exercise Price, Exercised | 30.10 | 26.11 | 21.98 |
Weighted Average Exercise Price, Forfeited | 68.62 | 43.14 | 30.74 |
Weighted Average Exercise Price, Outstanding, Ending Balance | $ 44.76 | $ 36.71 | $ 30.03 |
Stock-Based Compensation - Summ
Stock-Based Compensation - Summary of Additional Information Related to Stock Options (Detail) - USD ($) $ / shares in Units, $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |||
Fair value of options vested | $ 2,509 | $ 3,000 | $ 3,393 |
Intrinsic value of options exercised | 27,713 | 31,737 | 11,103 |
Intrinsic value of options outstanding | $ 66,235 | $ 67,918 | $ 39,194 |
Weighted-average fair value per share of options granted | $ 31.31 | $ 16.18 | $ 16.86 |
Stock-Based Compensation - Weig
Stock-Based Compensation - Weighted Average Fair Value Per Share of Options Granted, Assumptions (Detail) - Stock Options [Member] | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Volatility | 35.00% | 33.00% | 33.00% |
Dividend yield | 0.00% | 0.00% | 0.00% |
Life (in years) | 4 years 4 months 24 days | 4 years 3 days | 4 years 5 months 4 days |
Risk-free interest rate | 0.59% | 0.99% | 2.41% |
Stock-Based Compensation - PSU,
Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail) - $ / shares | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Stock awards, Outstanding, Beginning Balance | 738,422 | 797,546 | 758,334 |
Granted, stock units | 314,290 | 331,264 | 288,462 |
Vested and common stock issued, stock units | (331,669) | (222,606) | (217,424) |
Forfeited, stock units | (18,883) | (167,782) | (31,826) |
Stock awards, Outstanding, Ending Balance | 702,160 | 738,422 | 797,546 |
Weighted average grant date fair value, Outstanding, Beginning Balance | $ 52.37 | $ 38.80 | $ 29.99 |
Granted, Weighted Average Grant Date Fair Value | 101.85 | 62.78 | 55.69 |
Vested and common stock issued, Weighted Average Grant Date Fair Value | 44.14 | 36.06 | 31.05 |
Forfeited, Weighted Average Grant Date Fair Value | 66.35 | 30.09 | 34.67 |
Weighted average grant date fair value, Outstanding, Ending Balance | $ 78.03 | $ 52.37 | $ 38.80 |
Stock-Based Compensation - Su_2
Stock-Based Compensation - Summary of ESPP Activity (Detail) - Employee Stock Purchase Plan [Member] - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Amounts for shares purchased | $ 4,737 | $ 3,374 | $ 2,270 |
Shares purchased | 55,726 | 61,833 | 58,851 |
Stock-Based Compensation - Fair
Stock-Based Compensation - Fair Value Estimation of Common Stock, Assumptions (Detail) - Employee Stock Purchase Plan [Member] | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Volatility | 32.00% | 43.00% | 36.00% |
Dividend yield | 0.00% | 0.00% | 0.00% |
Life (in years) | 6 months | 6 months | 6 months |
Risk-free interest rate | 0.07% | 0.96% | 2.36% |
Income Taxes - Schedule of Prov
Income Taxes - Schedule of Provision for Income Taxes (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Current | |||
Federal | $ 1,559 | ||
State | 1,890 | $ 1,249 | $ 599 |
Foreign | 1,610 | 1,608 | 169 |
Deferred | |||
Federal | 4,294 | 4,462 | 6,595 |
State | (88) | 244 | 1,156 |
Foreign | (321) | (469) | (161) |
Total provision for income taxes | $ 8,944 | $ 7,094 | $ 8,358 |
Income Taxes - Schedule of Inco
Income Taxes - Schedule of Income Tax Expense Differed from Amounts Computed by applying U.S. Federal Income Tax Rate to Pretax Income (Detail) | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Income Tax Disclosure [Abstract] | |||
U.S. statutory federal income tax rate | 21.00% | 21.00% | 21.00% |
Increase (decrease) resulting from: | |||
U.S. state income taxes, net of federal tax effect | 4.50% | 4.50% | 4.60% |
Tax impact of stock activity | (12.80%) | (12.90%) | (6.00%) |
Nondeductible compensation | 5.00% | 1.80% | 2.20% |
Research and development credit | (1.10%) | (0.60%) | (3.00%) |
Foreign derived intangible income | (1.30%) | (1.30%) | |
Other | 1.40% | 1.00% | 1.10% |
Effective tax rate | 16.70% | 13.50% | 19.90% |
Income Taxes - Significant Comp
Income Taxes - Significant Components of Deferred Tax Assets (Liabilities) (Detail) - USD ($) $ in Thousands | Dec. 31, 2021 | Dec. 31, 2020 |
Deferred tax assets | ||
Net operating loss and credit carryforwards | $ 4,828 | $ 4,539 |
Stock-based compensation expense | 3,934 | 3,605 |
Accounts receivable allowances | 1,336 | 1,228 |
Accrued expenses | 5,174 | 3,200 |
Deferred revenue | 1,300 | 695 |
Operating lease liabilities | 5,235 | 5,435 |
Other | 142 | 660 |
Gross deferred tax assets | 21,949 | 19,362 |
Less: valuation allowance | (1,815) | (1,582) |
Total net deferred tax assets | 20,134 | 17,780 |
Deferred tax liabilities | ||
Deferred costs | (15,126) | (12,561) |
Right-of-use assets | (2,787) | (3,754) |
Foreign operations | (364) | (228) |
Depreciation and amortization | (8,820) | (3,980) |
Total deferred tax liabilities | (27,097) | (20,523) |
Net deferred tax liabilities | $ (6,963) | $ (2,743) |
Income Taxes - Additional Infor
Income Taxes - Additional Information (Detail) $ in Millions | 12 Months Ended |
Dec. 31, 2021USD ($) | |
Domestic Tax Authority [Member] | |
Income Tax Expense Benefit [Line Items] | |
Net operating loss carryforward | $ 14.4 |
Expiration of net operating loss carryforwards | will expire between 2022 and 2036 for federal tax purposes |
Losses expected to expire unused | $ 8.5 |
Domestic Tax Authority [Member] | Research and Development [Member] | |
Income Tax Expense Benefit [Line Items] | |
Research and development credit carryforwards | $ 1.3 |
Year in which credit carryforward begins to expire | 2034 |
Year in which credit carryforward end to expire | 2042 |
Domestic Tax Authority [Member] | U.S. Internal Revenue Code [Member] | |
Income Tax Expense Benefit [Line Items] | |
Net operating loss carryforward | $ 14.4 |
State and Local Jurisdiction [Member] | |
Income Tax Expense Benefit [Line Items] | |
Net operating loss carryforward | $ 4 |
Expiration of net operating loss carryforwards | between 2029 and 2042 for state tax purposes |
State and Local Jurisdiction [Member] | Research and Development [Member] | |
Income Tax Expense Benefit [Line Items] | |
Research and development credit carryforwards | $ 1.8 |
Year in which credit carryforward begins to expire | 2025 |
Year in which credit carryforward end to expire | 2037 |
Other Income - Summary of Other
Other Income - Summary of Other Income (Expense), Net (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Other Income And Expenses [Abstract] | |||
Investment income | $ 278 | $ 1,208 | $ 2,947 |
Realized gain (loss) from foreign currency on cash and investments held | (1,456) | 1,753 | |
Change in earn-out liability | (85) | (445) | |
Other | (366) | (354) | 1,162 |
Total other income (expense), net | $ (1,544) | $ 2,522 | $ 3,664 |
Net Income Per Share - Componen
Net Income Per Share - Components of Computation of Basic and Diluted Net Income Per Share (Detail) - USD ($) $ / shares in Units, shares in Thousands, $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Numerator | |||
Net income | $ 44,597 | $ 45,586 | $ 33,712 |
Denominator | |||
Weighted average common shares outstanding, basic | 35,928 | 35,226 | 35,024 |
Options to purchase common stock | 529 | 611 | 680 |
PSUs, RSUs, RSAs, and DSUs | 505 | 448 | 298 |
Weighted average common shares outstanding, diluted | 36,962 | 36,285 | 36,002 |
Net income per share | |||
Basic | $ 1.24 | $ 1.29 | $ 0.96 |
Diluted | $ 1.21 | $ 1.26 | $ 0.94 |
Net Income Per Share - Schedule
Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail) - shares shares in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Net Income Per Share [Abstract] | |||
Antidilutive shares | 31 | 26 | 181 |
Retirement Savings Plan - Addit
Retirement Savings Plan - Additional Information (Detail) | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Compensation And Retirement Disclosure [Abstract] | |||
Maximum allowable contribution by employee percentage | 80.00% | 80.00% | 80.00% |
Defined benefit plan employer matching contribution percent | 50.00% | 50.00% | |
Maximum annual contribution per employee, percent | 6.00% |
Retirement Savings Plan - Sched
Retirement Savings Plan - Schedule of Total Contribution to the Plan (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Compensation And Retirement Disclosure [Abstract] | |||
Retirement contributions | $ 4,790 | $ 3,889 | $ 3,306 |
Geographic Information - Summar
Geographic Information - Summary of Domestic Revenue (Detail) | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Revenue Benchmark | Geographic Concentration Risk | Domestic Revenue | |||
Disaggregation Of Revenue [Line Items] | |||
Concentration risk, percentage | 84.00% | 85.00% | 85.00% |
Geographic Information - Additi
Geographic Information - Additional Information (Detail) | 12 Months Ended |
Dec. 31, 2021jurisdiction | |
Disaggregation Of Revenue [Line Items] | |
Number of jurisdiction outside US had excess revenue of 10% | 0 |
Revenue Benchmark | Geographic Concentration Risk | Foreign [Member] | Maximum [Member] | |
Disaggregation Of Revenue [Line Items] | |
Concentration risk, percentage | 10.00% |
Geographic Information - Summ_2
Geographic Information - Summary of Percentage of Property and Equipment Net Located at Subsidiary and Office Locations Outside of Unites States (Detail) | 12 Months Ended | |
Dec. 31, 2021 | Dec. 31, 2020 | |
Revenue Benchmark | Geographic Concentration Risk | Foreign [Member] | Property, Plant and Equipment | ||
Property, Plant and Equipment [Line Items] | ||
Concentration risk, percentage | 12.00% | 15.00% |
Related Party Transactions - Ad
Related Party Transactions - Additional Information (Detail) - SPS Commerce Foundation [Member] | 12 Months Ended |
Dec. 31, 2021USD ($) | |
Related Party Transaction [Line Items] | |
Legal obligations for future commitments to Foundation | $ 0 |
Directors of Foundation [Member] | |
Related Party Transaction [Line Items] | |
Officers' compensation from Foundation | $ 0 |
Related Party Transactions - Su
Related Party Transactions - Summary of Contributions to Foundation (Detail) - USD ($) $ in Thousands | 12 Months Ended | ||
Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | |
Related Party Transactions [Abstract] | |||
Foundation contributions | $ 2,400 | $ 1,800 | $ 10 |