Document and Entity Information
Document and Entity Information - shares | 9 Months Ended | |
Sep. 30, 2019 | Oct. 18, 2019 | |
Cover [Abstract] | ||
Document Type | 10-Q | |
Amendment Flag | false | |
Document Period End Date | Sep. 30, 2019 | |
Document Fiscal Year Focus | 2019 | |
Document Fiscal Period Focus | Q3 | |
Trading Symbol | SPSC | |
Entity Registrant Name | SPS COMMERCE INC | |
Entity Central Index Key | 0001092699 | |
Current Fiscal Year End Date | --12-31 | |
Entity Filer Category | Large Accelerated Filer | |
Entity Small Business | false | |
Entity Emerging Growth Company | false | |
Entity Common Stock, Shares Outstanding | 34,839,275 | |
Entity Current Reporting Status | Yes | |
Entity Interactive Data Current | Yes | |
Entity Shell Company | false | |
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 Quarterly Report | true | |
Document Transition Report | false |
Condensed Consolidated Balance
Condensed Consolidated Balance Sheets (Unaudited) - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
CURRENT ASSETS | ||
Cash and cash equivalents | $ 149,727 | $ 133,859 |
Short-term investments | 51,446 | 44,537 |
Accounts receivable, less allowance for doubtful accounts of $1,500 and $1,392, respectively | 29,383 | 27,488 |
Deferred costs | 34,583 | 34,502 |
Other current assets | 8,385 | 9,229 |
Total current assets | 273,524 | 249,615 |
PROPERTY AND EQUIPMENT, less accumulated depreciation of $49,168 and $41,175, respectively | 20,757 | 20,957 |
OPERATING LEASE RIGHT-OF-USE ASSETS | 13,648 | |
GOODWILL | 76,366 | 69,658 |
INTANGIBLE ASSETS, net | 23,844 | 22,741 |
OTHER ASSETS | ||
Deferred costs | 10,998 | 10,973 |
Deferred income tax asset | 4,839 | 10,456 |
Other assets | 2,621 | 1,723 |
Total assets | 426,597 | 386,123 |
CURRENT LIABILITIES | ||
Accounts payable | 4,367 | 4,440 |
Accrued compensation | 17,660 | 20,415 |
Accrued expenses | 4,874 | 4,558 |
Deferred revenue | 30,351 | 25,328 |
Deferred rent | 1,781 | |
Operating lease liabilities | 3,281 | |
Total current liabilities | 60,533 | 56,522 |
OTHER LIABILITIES | ||
Deferred revenue | 2,601 | 2,512 |
Deferred rent | 5,371 | |
Operating lease liabilities | 16,224 | |
Deferred income tax liability | 1,169 | 1,376 |
Other non-current liabilities | 1,002 | 1,368 |
Total liabilities | 81,529 | 67,149 |
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; 55,000,000 shares authorized; 36,026,218 and 35,515,256 shares issued; and 34,901,884 and 34,691,472 outstanding, respectively | 36 | 36 |
Treasury stock, at cost; 1,124,334 and 823,784 shares, respectively | (40,645) | (25,679) |
Additional paid-in capital | 349,014 | 332,574 |
Retained earnings | 39,811 | 15,261 |
Accumulated other comprehensive loss | (3,148) | (3,218) |
Total stockholders’ equity | 345,068 | 318,974 |
Total liabilities and stockholders’ equity | $ 426,597 | $ 386,123 |
Condensed Consolidated Balanc_2
Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) $ in Thousands | Sep. 30, 2019USD ($)$ / sharesshares | Dec. 31, 2018USD ($)$ / sharesshares |
Statement Of Financial Position [Abstract] | ||
Allowance for doubtful accounts | $ | $ 1,500 | $ 1,392 |
Accumulated depreciation | $ | $ 49,168 | $ 41,175 |
Preferred stock, par value | $ / shares | $ 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 | $ / shares | $ 0.001 | $ 0.001 |
Common stock, shares authorized | 55,000,000 | 55,000,000 |
Common stock, shares issued | 36,026,218 | 35,515,256 |
Common stock, shares outstanding | 34,901,884 | 34,691,472 |
Treasury stock, shares | 1,124,334 | 823,784 |
Condensed Consolidated Statemen
Condensed Consolidated Statements of Comprehensive Income (Unaudited) - USD ($) shares in Thousands, $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Income Statement [Abstract] | ||||
Revenues | $ 70,928 | $ 62,868 | $ 206,391 | $ 183,051 |
Cost of revenues | 23,263 | 20,411 | 68,330 | 60,571 |
Gross profit | 47,665 | 42,457 | 138,061 | 122,480 |
Operating expenses | ||||
Sales and marketing | 16,937 | 16,952 | 52,404 | 54,023 |
Research and development | 7,743 | 5,146 | 20,444 | 15,571 |
General and administrative | 10,725 | 11,174 | 33,674 | 31,278 |
Amortization of intangible assets | 1,327 | 928 | 3,897 | 3,086 |
Total operating expenses | 36,732 | 34,200 | 110,419 | 103,958 |
Income from operations | 10,933 | 8,257 | 27,642 | 18,522 |
Other income (expense) | ||||
Interest income, net | 843 | 628 | 2,233 | 1,589 |
Other income (expense), net | (165) | (219) | 28 | (541) |
Change in earn-out liability | 22 | 366 | ||
Total other income, net | 700 | 409 | 2,627 | 1,048 |
Income before income taxes | 11,633 | 8,666 | 30,269 | 19,570 |
Income tax expense | 2,692 | 605 | 5,719 | 2,839 |
Net income | 8,941 | 8,061 | 24,550 | 16,731 |
Other comprehensive income (expense) | ||||
Foreign currency translation adjustments | (958) | 76 | 73 | (2,155) |
Unrealized gain on investments, net of tax of $38, $41, $105, and $88, respectively | 115 | 123 | 315 | 264 |
Reclassification of gain on investments into earnings, net of tax of ($48), ($11), ($109) and ($64), respectively | (145) | (33) | (326) | (191) |
Total other comprehensive income (expense) | (988) | 166 | 62 | (2,082) |
Comprehensive income | $ 7,953 | $ 8,227 | $ 24,612 | $ 14,649 |
Net income per share | ||||
Basic | $ 0.26 | $ 0.23 | $ 0.70 | $ 0.49 |
Diluted | $ 0.25 | $ 0.23 | $ 0.68 | $ 0.48 |
Weighted average common shares used to compute net income per share | ||||
Basic | 35,015 | 34,438 | 34,966 | 34,334 |
Diluted | 35,932 | 35,482 | 35,952 | 35,114 |
Condensed Consolidated Statem_2
Condensed Consolidated Statements of Comprehensive Income (Unaudited) (Parenthetical) $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019USD ($) | Sep. 30, 2018USD ($) | Sep. 30, 2019USD ($) | Sep. 30, 2018USD ($) | |
Income Statement [Abstract] | ||||
Unrealized gain on investments, tax | $ 38 | $ 41 | $ 105 | $ 88 |
Reclassification of gain on investments into earnings, tax | $ (48) | $ (11) | $ (109) | $ (64) |
Condensed Consolidated Statem_3
Condensed Consolidated Statements of Stockholders' Equity - USD ($) $ in Thousands | Total | Common Stock [Member] | Treasury Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings (Accumulated Deficit) [Member] | Accumulated Other Comprehensive Income (Loss) [Member] |
Beginning balance at Dec. 31, 2017 | $ 288,111 | $ 34 | $ (5,815) | $ 301,846 | $ (8,611) | $ 657 |
Beginning balance, shares at Dec. 31, 2017 | 34,254,012 | 244,294 | ||||
Stock-based compensation | 9,040 | 9,040 | ||||
Exercise of stock options and issuance of restricted stock | 11,801 | $ 1 | 11,800 | |||
Exercise of stock options and issuance of restricted stock, shares | 749,936 | |||||
Employee stock purchase plan | 836 | 836 | ||||
Employee stock purchase plan, shares | 40,486 | |||||
Repurchases of common stock | (13,867) | $ (13,867) | ||||
Repurchases of common stock, shares | (439,290) | 439,290 | ||||
Net income | 16,731 | 16,731 | ||||
Foreign currency translation adjustments | (2,155) | (2,155) | ||||
Unrealized gain on investments, net of tax | 264 | 264 | ||||
Reclassification of gain on investments into earnings, net of tax | (190) | (190) | ||||
Ending balance at Sep. 30, 2018 | 310,571 | $ 35 | $ (19,682) | 323,522 | 8,120 | (1,424) |
Ending balance, shares at Sep. 30, 2018 | 34,605,144 | 683,584 | ||||
Beginning balance at Jun. 30, 2018 | 294,689 | $ 35 | $ (17,684) | 313,869 | 59 | (1,590) |
Beginning balance, shares at Jun. 30, 2018 | 34,319,638 | 631,082 | ||||
Stock-based compensation | 2,973 | 2,973 | ||||
Exercise of stock options and issuance of restricted stock | 6,680 | 6,680 | ||||
Exercise of stock options and issuance of restricted stock, shares | 338,008 | |||||
Repurchases of common stock | (1,998) | $ (1,998) | ||||
Repurchases of common stock, shares | (52,502) | 52,502 | ||||
Net income | 8,061 | 8,061 | ||||
Foreign currency translation adjustments | 76 | 76 | ||||
Unrealized gain on investments, net of tax | 123 | 123 | ||||
Reclassification of gain on investments into earnings, net of tax | (33) | (33) | ||||
Ending balance at Sep. 30, 2018 | 310,571 | $ 35 | $ (19,682) | 323,522 | 8,120 | (1,424) |
Ending balance, shares at Sep. 30, 2018 | 34,605,144 | 683,584 | ||||
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 | 10,312 | 10,312 | ||||
Exercise of stock options and issuance of restricted stock | 5,273 | 5,273 | ||||
Exercise of stock options and issuance of restricted stock, shares | 483,492 | |||||
Employee stock purchase plan | 1,155 | 1,155 | ||||
Employee stock purchase plan, shares | 32,992 | |||||
Repurchases of common stock | (14,966) | $ (14,966) | ||||
Repurchases of common stock, shares | (300,550) | 300,550 | ||||
Settlement and subsequent return of shares | (300) | (300) | ||||
Settlement and subsequent return of shares, shares | (5,522) | |||||
Net income | 24,550 | 24,550 | ||||
Foreign currency translation adjustments | 73 | 73 | ||||
Unrealized gain on investments, net of tax | 315 | 315 | ||||
Reclassification of gain on investments into earnings, net of tax | (326) | (326) | ||||
Adoption of ASU 2018-02 | 8 | 8 | ||||
Ending balance at Sep. 30, 2019 | 345,068 | $ 36 | $ (40,645) | 349,014 | 39,811 | (3,148) |
Ending balance, shares at Sep. 30, 2019 | 34,901,884 | 1,124,334 | ||||
Beginning balance at Jun. 30, 2019 | 338,333 | $ 36 | $ (34,645) | 344,232 | 30,870 | (2,160) |
Beginning balance, shares at Jun. 30, 2019 | 34,936,212 | 1,007,478 | ||||
Stock-based compensation | 2,804 | 2,804 | ||||
Exercise of stock options and issuance of restricted stock | 1,902 | 1,902 | ||||
Exercise of stock options and issuance of restricted stock, shares | 80,350 | |||||
Employee stock purchase plan | 76 | 76 | ||||
Employee stock purchase plan, shares | 2,178 | |||||
Repurchases of common stock | (6,000) | $ (6,000) | ||||
Repurchases of common stock, shares | (116,856) | 116,856 | ||||
Net income | 8,941 | 8,941 | ||||
Foreign currency translation adjustments | (958) | (958) | ||||
Unrealized gain on investments, net of tax | 115 | 115 | ||||
Reclassification of gain on investments into earnings, net of tax | (145) | (145) | ||||
Ending balance at Sep. 30, 2019 | $ 345,068 | $ 36 | $ (40,645) | $ 349,014 | $ 39,811 | $ (3,148) |
Ending balance, shares at Sep. 30, 2019 | 34,901,884 | 1,124,334 |
Condensed Consolidated Statem_4
Condensed Consolidated Statements of Stockholders' Equity (Parenthetical) | Aug. 22, 2019 | Aug. 08, 2019 |
Statement Of Stockholders Equity [Abstract] | ||
Stock split ratio | 2 | 2 |
Condensed Consolidated Statem_5
Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($) $ in Thousands | 9 Months Ended | |
Sep. 30, 2019 | Sep. 30, 2018 | |
Cash flows from operating activities | ||
Net income | $ 24,550 | $ 16,731 |
Reconciliation of net income to net cash provided by operating activities | ||
Deferred income taxes | 5,360 | 1,934 |
Change in earn-out liability | (366) | |
Depreciation and amortization of property and equipment | 8,143 | 6,308 |
Amortization of intangible assets | 3,897 | 3,086 |
Provision for doubtful accounts | 2,429 | 1,780 |
Stock-based compensation | 11,316 | 9,978 |
Other, net | (551) | (255) |
Changes in assets and liabilities | ||
Accounts receivable | (3,670) | (4,279) |
Deferred costs | (151) | (3,813) |
Other current and non-current assets | (820) | (681) |
Accounts payable | 181 | 382 |
Accrued compensation | (3,716) | (592) |
Accrued expenses | (84) | (718) |
Deferred revenue | 4,929 | 7,039 |
Deferred rent | 647 | |
Operating leases | (487) | |
Net cash provided by operating activities | 50,960 | 37,547 |
Cash flows from investing activities | ||
Purchases of property and equipment | (8,387) | (9,875) |
Purchases of investments | (61,967) | (64,434) |
Maturities of investments | 55,225 | 60,000 |
Acquisitions of businesses and intangible assets, net of cash acquired | (11,500) | (381) |
Net cash used in investing activities | (26,629) | (14,690) |
Cash flows from financing activities | ||
Repurchases of common stock | (14,966) | (13,867) |
Net proceeds from exercise of options to purchase common stock | 5,273 | 11,800 |
Net proceeds from employee stock purchase plan | 1,155 | 836 |
Net cash used in financing activities | (8,538) | (1,231) |
Effect of foreign currency exchange rate changes | 75 | (5) |
Net increase in cash and cash equivalents | 15,868 | 21,621 |
Cash and cash equivalents at beginning of period | 133,859 | 123,127 |
Cash and cash equivalents at end of period | $ 149,727 | $ 144,748 |
General
General | 9 Months Ended |
Sep. 30, 2019 | |
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 solutions that retailers, suppliers, grocers, distributors and logistics firms to orchestrate the The solutions 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 solutions SPS Commerce provides allow 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 unaudited condensed consolidated financial statements include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements, which Effective January 1, 2019, we adopted the requirements of Accounting Standards Update (“ASU”) No. 2016-02, Leases (Topic 842) On July 25, 2019, the Company announced that its board of directors declared a two-for-one stock split of the Company’s 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 Quarterly Report on Form 10-Q after the effect of 100 percent stock dividend. The two-for-one stock split is reflected in the share amounts in all periods presented in this Quarterly Report on Form 10-Q. 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, 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. Lease Policy We determine if an arrangement is a lease at inception. Operating leases are included in operating lease ROU assets, current lease liabilities, and long-term lease liabilities in our consolidated balance sheets. 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 estimate the discount rate for a similar collateralized asset by reviewing quoted costs of borrowing. We use the implicit interest rate when readily determinable. 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 right-of-use 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. Recently Adopted Accounting Pronouncements Standard Date of Issuance Description Date Adopted Effect on the Financial Statements ASU 2016-02 , Leases and all related amendments February 2016 Requires all leases with a term greater than 12 months to be recognized in the statements of financial position and eliminates current real estate-specific lease guidance, while maintaining substantially similar classification criteria for distinguishing between finance leases and operating leases. January 2019 The adoption of this standard and related amendments resulted in the recognition of approximately $15.7 million in right-of-use assets and lease liabilities on our balance sheet as of January 1, 2019. Comparative periods will continue to be measured and presented under historical guidance, and only the period of adoption and future periods will be subject to this ASU. There was no cumulative effect on retained earnings or other components of equity at the adoption date. For more information see Note H. ASU 2018-02 , Income Statement - Reporting Comprehensive Income (Topic 220) February 2018 Allows a reclassification from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the Tax Cuts and Jobs Act of 2017 and requires certain disclosures regarding stranded tax effects in accumulated other comprehensive income. January 2019 The adoption of this standard did not have a material impact on our consolidated financial statements. Accounting Pronouncements Not Yet Adopted Standard Date of Issuance Description Date of Required Adoption Effect on the Financial Statements ASU 2016-13 , Financial Instruments - Credit Losses (Topic 326), Measurement of Credit Losses on Financial Statements June 2016 The amendment in this update replaces the incurred loss impairment methodology in current GAAP with a methodology that reflects expected credit losses on instruments within its scope, including trade receivables. This update is intended to provide financial statement users with more decision-useful information about the expected credit losses. January 2020 We are currently evaluating the impact of the adoption on our condensed consolidated financial statements. ASU 2018-13 , Fair Value Measurement (Topic 820), Disclosure Framework - Changes to the Disclosure Requirements for Fair Value Measurement August 2018 This ASU adds, modifies and removes several disclosure requirements relative to the three levels of inputs used to measure fair value in accordance with Topic 820, Fair Value Measurement. January 2020 We are currently evaluating the impact of the adoption on our condensed consolidated financial statements. Significant Accounting Policies Except for the accounting policy for leases that was updated as a result of adopting ASU 2016-02, there were no material changes in our significant accounting policies during the nine months ended September 30, 2019. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K/A for the year ended December 31, 2018, as filed with the SEC, for additional information regarding our significant accounting policies. |
Business Acquisitions
Business Acquisitions | 9 Months Ended |
Sep. 30, 2019 | |
Business Combinations [Abstract] | |
Business Acquisitions | NOTE B – Business Acquisitions MAPADOC On August 26, 2019, we completed our asset acquisition of the MAPADOC business, an operating unit of SWK Technologies, Inc., a leading provider of EDI System Automation solutions for the Sage and Acumatica markets. Pursuant to the asset purchase agreement, the purchase price is $11.8 million, of which $11.5 million has been paid in cash and $0.3 million is due to the seller as part of the initial net working capital adjustment. The net working capital adjustment will be paid in cash upon final net working capital settlement. The purchase accounting for the MAPADOC acquisition has not been finalized as of September 30, 2019. Provisional amounts are primarily related to intangible assets and net working capital. We expect to finalize the allocation of purchase price within the one-year measurement period following the acquisition. 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. We engaged a third-party valuation firm to assist us in the determination of the value of the purchased intangible assets. 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 final purchase price is subject to a net working capital adjustment to be determined by the sellers and us, pursuant to the terms of the purchase agreement. The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date (in thousands): Current assets $ 612 Goodwill 6,570 Intangible assets 4,900 Deferred revenue (300 ) $ 11,782 Purchased Intangible Assets The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives: Estimated Estimated Fair Value Life Purchased Intangible Assets (in thousands) (in years) Developed technology $ 3,500 8 Subscriber relationships 1,400 8 $ 4,900 The purchased intangible assets are being amortized on a straight-line basis over their estimated useful lives. Amortization expense for the period from August 26, 2019 through September 30, 2019 was not material. EDIAdmin On October 3, 2018, we completed our asset acquisition of EDIAdmin, a privately held company providing end-to-end integration solutions, featuring a dedicated Integration Platform as a Service (“iPaaS”) called Cloud Hybrid Integration Platform (“CHIP”) and collaborative managed services for leading systems and applications, both cloud-based and on-premise. Pursuant to the asset purchase agreement, we paid $7.5 million in cash to the owner of EDIAdmin. The purchase agreement also allowed the seller to receive up to $1.7 million in cash, which becomes payable in first quarter 2020 and 2021 contingent upon the completion of certain revenue milestones at December 31, 2019 and December 31, 2020. The fair value of this contingent consideration was $1.3 million at the date of acquisition and $1.0 million at September 30, 2019. Due to the remeasurement of the contingent liability, we recognized an insignificant amount of income and $0.4 million of income for the three and nine months ended September 30, 2019, respectively, in our condensed consolidated statements of comprehensive income. 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 purchase accounting for the EDIAdmin acquisition was complete as of December 31, 2018. The consolidated balance sheet as of December 31, 2018 reflects the final allocation of the purchase price to the assets acquired and liabilities assumed based on their estimated fair values at the date of acquisition. CovalentWorks On December 18, 2018, we completed our asset acquisition of CovalentWorks, a privately held company providing cloud-based EDI solutions to small- and medium-sized businesses. Pursuant to the asset purchase agreement, we paid $19.4 million in cash and issued $3.4 million in common stock, or 80,956 shares, as adjusted for the two-for-one stock split, to the owners of CovalentWorks. 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 purchase accounting, purchase price allocation and net working capital adjustment for the CovalentWorks acquisition were finalized during the first quarter of 2019 and there have been no subsequent adjustments. |
Revenue
Revenue | 9 Months Ended |
Sep. 30, 2019 | |
Revenue From Contract With Customer [Abstract] | |
Revenue | NOTE C – Revenue We derive our revenues primarily from the following revenue streams (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Recurring revenues: Fulfillment $ 55,546 $ 48,482 $ 161,685 $ 140,326 Analytics 9,422 8,750 27,540 25,639 Other 1,458 1,412 4,303 3,969 Recurring Revenues 66,426 58,644 193,528 169,934 One-time revenues 4,502 4,224 12,863 13,117 $ 70,928 $ 62,868 $ 206,391 $ 183,051 Revenues are recognized when our services are made available to our customers, in an amount that reflects the consideration we are contractually and legally entitled to 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 Recurring Revenues Recurring revenues consists of recurring subscriptions from customers that utilize our Fulfillment, Analytics, and Other cloud-based supply chain management solutions. Revenue for these solutions 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 deferred revenue liability for 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 under Accounting Standards Codification (“ASC”) 606-10-50-14(a) and will not disclose information about the remaining performance obligations for contracts which have original durations of one year or less. One-time Revenues One-time revenues consist of set-up fees from customers and miscellaneous one-time fees. 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. Set-up fees related to our cloud-based supply chain management solutions are nonrefundable upfront fees that are necessary for our customers to utilize our cloud-based services. These set-up fees do not provide any standalone value to our customers. Except for our Analytics platform, we have determined the set-up fees represent a material renewal option right to our customers as they will not be incurred again upon renewal. These set-up fees and related costs are deferred and recognized ratably over two years, which is the estimated connection life between the customer and the trading partner. For our Analytics platform, we have determined the set-up fees do not represent a material customer renewal right and, as such, are deferred and recognized ratably over the estimated initial contract term, which is one year. The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Balances, at beginning of period $ 10,063 $ 9,886 $ 9,857 $ 10,031 Invoiced set-up fees 2,599 2,697 7,965 7,807 Amortized set-up fees (2,584 ) (2,596 ) (7,744 ) (7,851 ) Balances, at end of period $ 10,078 $ 9,987 $ 10,078 $ 9,987 The entire balance of set-up fees will be recognized within two years and, as such, current amounts will be recognized in the next 1-12 months and long-term amounts will be recognized in the next 13-24 months. Miscellaneous one-time fees consist of professional services and testing and certification. The deferred revenue liability for these one-time fees are for one year or less and recognized at the time service is provided. We have applied the optional exemption under ASC 606-10-50-14(a) and will not disclose information about the remaining performance obligations for contracts which have original durations of one year or less. |
Deferred Costs
Deferred Costs | 9 Months Ended |
Sep. 30, 2019 | |
Deferred Costs [Abstract] | |
Deferred Costs | NOTE D – Deferred Costs Deferred costs consist of costs to obtain customer contracts, such as commissions paid to sales personnel and to third-party partners for customer referrals, and costs to fulfill customer contracts, such as customer implementation costs. Sales commissions relating to recurring revenues are considered incremental and recoverable costs of obtaining a contract with our customer. These commissions are calculated based on estimated annual recurring revenue to be generated over the customer’s initial contract year. These costs are deferred and amortized over the expected period of benefit which we have determined to be two years. Amortization expense is included in sales and marketing expenses in the accompanying condensed consolidated statements of comprehensive income. Customer implementation costs are considered incremental and recoverable costs of obtaining a contract with our customer. These costs are deferred and amortized over the expected period of benefit which we have determined to be two years. Amortization expense is included in cost of revenues in the accompanying condensed consolidated statements of comprehensive income. The table below presents the activity of deferred costs and amortization of deferred costs (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Balances, at beginning of period $ 45,528 $ 42,544 $ 45,475 $ 39,933 Incurred deferred costs 12,676 12,391 36,888 36,807 Amortized deferred costs (12,623 ) (11,204 ) (36,782 ) (33,009 ) Balances, at end of period $ 45,581 $ 43,731 $ 45,581 $ 43,731 |
Financial Instruments
Financial Instruments | 9 Months Ended |
Sep. 30, 2019 | |
Disclosure Text Block Supplement [Abstract] | |
Financial Instruments | NOTE E – Financial Instruments We invest primarily in money market funds, certificates of deposit, highly liquid debt instruments of the U.S. government and U.S. corporate debt securities. All investments with remaining maturities of less than one year from the balance sheet date are classified as short-term investments. Investments with remaining maturities of more than one year from the balance sheet date are classified as long-term investments. As of September 30, 2019 and December 31, 2018, all of our investments held were classified as short-term. Our short-term marketable securities are classified as available-for-sale. We intend to hold marketable securities until maturity; however, we may sell these securities at any time for use in current operations or for other purposes. Our marketable securities are carried at fair value and unrealized gains and losses on these investments, net of taxes, are included in accumulated other comprehensive loss in the condensed consolidated balance sheets. Realized gains or losses are included in other income (expense), net in the condensed consolidated statements of comprehensive income. When a determination has been made that an other-than-temporary decline in fair value has occurred, the amount of the decline that is related to a credit loss is realized and is included in other income (expense), net in the condensed consolidated statements of comprehensive income. Cash equivalents and short-term investments consisted of the following (in thousands): September 30, 2019 Amortized Unrealized Fair Cost Gains (Losses) Value Cash equivalents: Money market funds $ 124,046 $ — $ 124,046 Certificates of deposit 6,747 — 6,747 Marketable securities: Corporate bonds 19,821 (11 ) 19,810 Commercial paper 9,961 41 10,002 U.S. treasury securities 14,778 109 14,887 Total $ 175,353 $ 139 $ 175,492 December 31, 2018 Amortized Unrealized Fair Cost Gains Value Cash equivalents: Money market funds $ 109,265 $ — $ 109,265 Certificates of deposit 7,000 — 7,000 Marketable securities: Corporate bonds 15,194 40 15,234 Commercial paper 9,889 76 9,965 U.S. treasury securities 12,300 38 12,338 Total $ 153,648 $ 154 $ 153,802 We do not believe any of the unrealized losses represent an other-than-temporary impairment based on our valuation of available evidence as of September 30, 2019. We expect to receive the full principal and interest on all of these cash equivalents, certificates of deposit, and marketable securities. 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 may be 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. We obtain the fair values of our level 2 available-for-sale securities from a professional pricing service. • Level 3 – unobservable inputs to the valuation methodology that are significant to the measurement of fair value of assets or liabilities. For the earn-out liability related to the EDIAdmin acquisition, the Company utilized the Monte Carlo simulation method to estimate the fair value of this contingent liability as of the reporting date. Thousands of iterations of the simulation were performed using forecasted revenues to develop a distribution of future values of recurring revenue which, in turn, provide indicated earn-out payments. The total estimated fair value equals the sum of the average present values of the indicated earn-out payments. Changes in assumptions described above could have an impact on the payout of contingent consideration with a maximum payout being $1.7 million. The earn-out liability has been measured as Level 3 given the unobservable inputs that are significant to the measurement of the liability. The following table presents information about our financial assets that are measured at fair value on a recurring basis and indicates the fair value hierarchy of the valuation techniques utilized to determine such fair value (in thousands): September 30, 2019 Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 124,046 $ — $ — $ 124,046 Certificates of deposit 6,747 — — 6,747 Marketable securities: Corporate bonds — 19,810 — 19,810 Commercial paper — 10,002 — 10,002 U.S. treasury securities — 14,887 — 14,887 Total $ 130,793 $ 44,699 $ — $ 175,492 Liabilities: Earn-out liability $ — $ — $ 1,002 $ 1,002 Total $ — $ — $ 1,002 $ 1,002 December 31, 2018 Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 109,265 $ — $ — $ 109,265 Certificates of deposit 7,000 — — 7,000 Marketable securities: Corporate bonds — 15,234 — 15,234 Commercial paper — 9,965 — 9,965 U.S. treasury securities — 12,338 — 12,338 Total $ 116,265 $ 37,537 $ — $ 153,802 Liabilities: Earn-out liability $ — $ — $ 1,368 $ 1,368 Total $ — $ — $ 1,368 $ 1,368 Nonrecurring Fair Value Measurements The Company measures certain assets and liabilities at fair value on a nonrecurring basis. Assets and liabilities that are measured at fair value on a nonrecurring basis include long-lived assets, goodwill and indefinite-lived intangible assets, which would generally be recorded at fair value as a result of an impairment charge. Assets acquired and liabilities assumed as part of business combinations are measured at fair value. For additional information on the Company's business combinations and the related nonrecurring fair value measurement of the assets acquired and liabilities assumed, refer to Note B, Business Acquisitions. Other Fair Value Disclosures The carrying values of the Company's short-term financial instruments, including cash and cash equivalents, accounts receivable, and accounts payable, when applicable, approximate their respective fair values due to their short-term nature. |
Goodwill and Intangible Assets,
Goodwill and Intangible Assets, net | 9 Months Ended |
Sep. 30, 2019 | |
Goodwill And Intangible Assets Disclosure [Abstract] | |
Goodwill and Intangible Assets, net | NOTE F – Goodwill and Intangible Assets, net The changes in the net carrying amount of goodwill for the nine months ended September 30, 2019 are as follows (in thousands): 2019 Balance, January 1 $ 69,658 Goodwill acquired during the period 6,570 Foreign currency translation adjustments 138 Balance, September 30, 2019 $ 76,366 Intangible assets subject to amortization primarily include subscriber relationships, non-competition agreements and acquired technology and are amortized over their respective useful lives (ranging from 1 to 10 years). Intangible assets, net included the following (in thousands): September 30, 2019 Gross Foreign Carrying Accumulated Currency Amount Amortization Translation Net Subscriber relationships $ 43,640 $ (26,178 ) $ 76 $ 17,538 Non-competition agreements 2,495 (2,334 ) 7 168 Technology and other 8,502 (2,372 ) 8 6,138 $ 54,637 $ (30,884 ) $ 91 $ 23,844 December 31, 2018 Gross Foreign Carrying Accumulated Currency Amount Amortization Translation Net Subscriber relationships $ 43,212 $ (23,284 ) $ (623 ) $ 19,305 Non-competition agreements 2,560 (2,247 ) (28 ) 285 Technology and other 5,199 (2,012 ) (36 ) 3,151 $ 50,971 $ (27,543 ) $ (687 ) $ 22,741 The estimated annual amortization expense related to intangible assets subject to amortization for the next five years is as follows (in thousands): Remainder of 2019 $ 1,412 2020 5,309 2021 4,471 2022 3,367 2023 3,297 Thereafter 5,988 $ 23,844 |
Other Assets
Other Assets | 9 Months Ended |
Sep. 30, 2019 | |
Other Assets [Abstract] | |
Other Assets | NOTE G – Other Assets The changes in the net amount of capitalized implementation costs for internal-use software from hosting arrangements for the nine months ended September 30, 2019 is as follows (in thousands): 2019 Balance, January 1 $ 455 Capitalized implementation fees 670 Amortization of implementation fees (52 ) Balance, September 30, 2019 $ 1,073 There were no impairment losses in relation to the capitalized implementation costs for the period presented. |
Leases
Leases | 9 Months Ended |
Sep. 30, 2019 | |
Leases [Abstract] | |
Leases | NOTE H – Leases We are obligated under non-cancellable operating leases, primarily for office space and certain equipment, as follows: September 30, 2019 Remaining Right-of-Use Term (years) Asset (in thousands) Minneapolis, MN lease 6 $ 10,823 Little Falls, NJ lease 4 1,674 Other leases < 1 - 3 1,151 $ 13,648 Some of our leases may include options to extend the leases for up to 5 years. The options to extend our leases are not recognized as part of our ROU assets and lease liabilities as it is not reasonably certain that we will exercise those options. Additionally, our agreements do not include options to terminate the leases. On December 20, 2017, we executed the fourth amendment to our lease agreement for our current headquarters located in Minneapolis, Minnesota where we lease approximately 189,000 square feet under an agreement that expires on April 30, 2025. We have agreed to expand our headquarters premises by approximately 25,000 square feet during 2020. Our lease agreement also includes a further expansion right and a right of first offer to lease certain additional space and two options to extend the term of the lease for five years at a market rate determined in accordance with the lease. Incentives of $6.4 million are included as a lease component. On February 25, 2016, we executed the first amendment to our lease agreement for our Little Falls, New Jersey location where we lease approximately 26,000 square feet under an agreement that expires on June 30, 2023. The agreement includes an option to extend the term of the lease for five years at a market rate determined in accordance with the lease. Incentives of $0.9 million are included as a lease component. The components of lease expense were as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2019 Operating lease cost $ 650 $ 1,956 Variable lease cost 721 2,360 $ 1,371 $ 4,316 Operating lease cost for short-term leases was not material for the three and nine months ended September 30, 2019. Supplemental cash flow information related to leases was as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2019 Cash paid for amounts included in the measurement of lease liabilities Operating cash flows from operating leases 1,109 3,246 ROU assets obtained in exchange for operating lease liabilities — — The ROU assets obtained in exchange for operating lease liabilities excludes the transition amount of $15.7 million. Supplemental balance sheet information related to leases was as follows: September 30, 2019 Weighted-average remaining lease term - operating leases 5.1 years Weighted-average discount rate - operating leases 4.5 % At September 30, 2019 , our future minimum payments under operating leases were as follows (in thousands): Remainder of 2019 $ 1,125 2020 3,635 2021 4,483 2022 4,042 2023 3,855 Thereafter 4,816 21,956 Less: imputed interest (2,451 ) $ 19,505 At December 31, 2018, our future minimum payments under operating leases were as follows (in thousands): 2019 $ 4,209 2020 3,542 2021 4,414 2022 4,042 2023 3,855 Thereafter 4,816 $ 24,878 |
Stock-Based Compensation
Stock-Based Compensation | 9 Months Ended |
Sep. 30, 2019 | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |
Stock-Based Compensation | NOTE I – Stock-Based Compensation On August 22, 2019, we effected a two-for-one stock split of the Company’s common stock. There was no change in the number of authorized common shares of the Company. All share and per share data have been adjusted for all periods presented to reflect the stock split. Our equity compensation plans provide for the grant of incentive and nonqualified stock options, as well as other stock-based awards including restricted stock and restricted stock units (“RSU”), to employees, non-employee directors and other consultants who provide services to us. We also provide an employee stock purchase plan and 401(k) stock match. Restricted stock awards 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. In February 2019, 2,081,488 additional shares were reserved for future issuance under our 2010 Equity Incentive Plan. At September 30, 2019, there were approximately 12,255,888 million shares available for grant under approved equity compensation plans. We recognize stock-based compensation expense on a straight-line basis over the vesting period, except for expense relating to retirement-eligible employees which is recognized immediately upon the employee becoming retirement-eligible. Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Cost of revenues $ 778 $ 535 $ 2,027 $ 1,587 Operating expenses Sales and marketing 784 691 2,208 2,054 Research and development 697 287 1,822 973 General and administrative 888 1,753 5,259 5,364 Total stock-based compensation expense $ 3,147 $ 3,266 $ 11,316 $ 9,978 Stock-based compensation expense by plan type was as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Stock options $ 619 $ 677 $ 2,548 $ 2,670 Performance share units 152 74 1,226 960 Restricted stock units 1,719 1,976 5,581 4,727 Restricted stock awards 128 137 409 352 Employee stock purchase plan 186 109 547 332 401(k) stock match 343 293 1,005 937 Total stock-based compensation expense $ 3,147 $ 3,266 $ 11,316 $ 9,978 As of September 30, 2019, there was approximately $21.3 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.6 years. Stock Options Stock options generally vest over four years and have a contractual term of seven to ten 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,194 53.92 Exercised (309,310 ) 21.57 Forfeited (39,818 ) 30.57 Outstanding at September 30, 2019 1,581,534 29.93 Of the total outstanding options at September 30, 2019, 1,129,294 were exercisable with a weighted average exercise price of $27.03 per share. The total outstanding options had a weighted average remaining contractual life of 3.2 years. The weighted average grant date fair value of options granted during the first nine months of 2019 was $16.86 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions: Volatility 33.2 % Dividend yield 0 % Life (in years) 4.4 Risk-free interest rate 2.41 % Performance Share Units and Restricted Stock Units and Awards In February 2017, our executive officers were granted performance share unit (“PSU”) awards with vesting contingent on successful attainment of pre-determined revenue targets over the course of a three-year performance period (fiscal years 2017 – 2019). The fair value is measured as the number of performance shares expected to be earned multiplied by the grant date fair value of our shares. The number of performance shares expected to vest during the current service period is estimated and the fair value of those shares is recognized over the remaining service period less any amounts already recognized. In February 2018 and 2019, our executive officers were granted PSU awards with vesting contingent on the Company’s total shareholder return as compared to indexed total shareholder return over the course of a three-year performance period (fiscal years 2018 – 2020 and fiscal years 2019 – 2021, respectively). The grant date fair value was estimated using a Monte Carlo simulation that utilizes multiple input variables that determine the probability of satisfying the performance conditions stipulated in the award and calculates the fair market value for the PSUs granted. Expense is recognized on a straight-line basis over the vesting period, regardless of whether the market condition is satisfied. RSUs vest over four years and, upon vesting, the holder is entitled to receive shares of our common stock. With restricted stock awards, shares of our common stock are issued when the award is granted and the restrictions lapse over one year. Activity for our PSUs and RSUs was as follows: Weighted Average PSUs and RSUs Grant Date Fair Value (#) ($/share) Outstanding at December 31, 2018 754,670 $ 29.95 Granted 272,454 55.90 Vested and common stock issued (190,624 ) 28.76 Forfeited (28,144 ) 33.14 Outstanding at September 30, 2019 808,356 38.86 The number of RSUs outstanding at September 30, 2019 included 88,196 units that have vested, but for which shares of common stock have not yet been issued pursuant to the terms of the agreement. Our restricted stock awards activity was as follows: Restricted Stock Weighted Average Grant Awards (#) Date Fair Value ($/share) Outstanding at December 31, 2018 3,664 $ 37.22 Restricted common stock issued 9,840 51.80 Restrictions lapsed (8,584 ) 45.58 Forfeited — — Outstanding at September 30, 2019 4,920 $ 51.80 Employee Stock Purchase Plan We have an employee stock purchase plan which a llows 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 one share of 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, respectively. A total of 2.0 million shares of common stock are reserved for issuance under the plan. For the offering periods that began on January 1, 2019 and January 1, 2018, we withheld approximately $1.2 million and $0.8 million from employees participating in the plan. For the offering periods that began on July 1, 2019 and July 1, 2018, we withheld approximately $0.7 million and $0.5 million from employees participating in the plan as of September 30, 2019 and 2018, respectively. The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the Black-Scholes option pricing model with the following assumptions: Volatility 40 % Dividend yield 0 % Life (in years) 0.5 Risk-free interest rate 2.56 % 401(k) Stock Match We sponsor a 401(k) retirement savings plan for our U.S. employees where employees can contribute up to 80% of their compensation, subject to the limits established by law. We match 50% of the employee’s elective deferrals, up to the first 6% of the employee’s pre-tax compensation for each pay period. 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. |
Income Taxes
Income Taxes | 9 Months Ended |
Sep. 30, 2019 | |
Income Tax Disclosure [Abstract] | |
Income Taxes | NOTE J – Income Taxes We record our interim provision for income taxes by applying our estimated annual effective tax rate to our year-to-date pretax income and adjust the provision for discrete tax items recorded in the period. Differences between our effective tax rate and statutory tax rates are primarily due to the impact of permanently non-deductible expenses partially offset by the federal research and development credits. Additionally, excess tax benefits generated upon settlement or exercise of stock awards are recognized as a reduction to income tax expense as a discrete tax item in the quarter that the event occurs creating potentially significant fluctuation in tax expense by quarter and by year. Our provisions for income taxes include current foreign and state income tax expense, as well as deferred tax expense. As of September 30, 2019, we do not have any unrecognized tax benefits nor any material accrued interest or tax penalties. |
Net Income Per Share
Net Income Per Share | 9 Months Ended |
Sep. 30, 2019 | |
Earnings Per Share [Abstract] | |
Net Income Per Share | NOTE K – 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, PSUs, RSUs and restricted awards. Potential common shares that are anti-dilutive are excluded from the calculation of diluted net income per share. The following table presents the components of the computation of basic and diluted net income per share for the periods indicated (in thousands, except per share amounts): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Numerator Net income $ 8,941 $ 8,061 $ 24,550 $ 16,731 Denominator Weighted average common shares outstanding, basic 35,015 34,438 34,966 34,334 Options to purchase common stock 634 790 687 586 PSUs, RSUs and restricted stock awards 283 254 299 194 Weighted average common shares outstanding, diluted 35,932 35,482 35,952 35,114 Net income per share Basic $ 0.26 $ 0.23 $ 0.70 $ 0.49 Diluted $ 0.25 $ 0.23 $ 0.68 $ 0.48 Antidilutive shares (in thousands) 240 — 164 54 Shares and per share data have been adjusted for all periods presented to reflect a two-for-one stock split effective August 22, 2019. |
Subsequent Event
Subsequent Event | 9 Months Ended |
Sep. 30, 2019 | |
Subsequent Events [Abstract] | |
Subsequent Event | NOTE L – Subsequent Event Subsequent to September 30, 2019, the Company’s board of directors authorized an increase and extension of its previously announced stock repurchase program pursuant to which the Company may, from time to time, purchase shares of its outstanding common stock. The stock repurchase program originally authorized the Company to purchase up to $50.0 million of its outstanding common stock and that amount has been increased by the board to $100.0 million. As of September 30, 2019, $9.3 million remained available under the previously unused stock repurchase program. The board also authorized an extension of the original expiration date of the stock repurchase program from November 2, 2019 to November 2, 2021. The number of shares to be purchased and the timing of purchases will be based on the price of the Company’s common stock, general business and market conditions and other investment considerations and factors. The program does not obligate the Company to repurchase any specific number of shares and it may be suspended or discontinued at any time without prior notice. The Company intends to finance the share repurchase program with cash on hand. |
General (Policies)
General (Policies) | 9 Months Ended |
Sep. 30, 2019 | |
Organization Consolidation And Presentation Of Financial Statements [Abstract] | |
Business Description | Business Description SPS Commerce is a leading provider of cloud-based supply chain management solutions that retailers, suppliers, grocers, distributors and logistics firms to orchestrate the The solutions 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 solutions SPS Commerce provides allow 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 unaudited condensed consolidated financial statements include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements, which Effective January 1, 2019, we adopted the requirements of Accounting Standards Update (“ASU”) No. 2016-02, Leases (Topic 842) On July 25, 2019, the Company announced that its board of directors declared a two-for-one stock split of the Company’s 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 Quarterly Report on Form 10-Q after the effect of 100 percent stock dividend. The two-for-one stock split is reflected in the share amounts in all periods presented in this Quarterly Report on Form 10-Q. |
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, 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. |
Lease Policy | Lease Policy We determine if an arrangement is a lease at inception. Operating leases are included in operating lease ROU assets, current lease liabilities, and long-term lease liabilities in our consolidated balance sheets. 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 estimate the discount rate for a similar collateralized asset by reviewing quoted costs of borrowing. We use the implicit interest rate when readily determinable. 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 right-of-use 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. |
Recently Adopted Accounting Pronouncements | Recently Adopted Accounting Pronouncements Standard Date of Issuance Description Date Adopted Effect on the Financial Statements ASU 2016-02 , Leases and all related amendments February 2016 Requires all leases with a term greater than 12 months to be recognized in the statements of financial position and eliminates current real estate-specific lease guidance, while maintaining substantially similar classification criteria for distinguishing between finance leases and operating leases. January 2019 The adoption of this standard and related amendments resulted in the recognition of approximately $15.7 million in right-of-use assets and lease liabilities on our balance sheet as of January 1, 2019. Comparative periods will continue to be measured and presented under historical guidance, and only the period of adoption and future periods will be subject to this ASU. There was no cumulative effect on retained earnings or other components of equity at the adoption date. For more information see Note H. ASU 2018-02 , Income Statement - Reporting Comprehensive Income (Topic 220) February 2018 Allows a reclassification from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the Tax Cuts and Jobs Act of 2017 and requires certain disclosures regarding stranded tax effects in accumulated other comprehensive income. January 2019 The adoption of this standard did not have a material impact on our consolidated financial statements. |
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 2016-13 , Financial Instruments - Credit Losses (Topic 326), Measurement of Credit Losses on Financial Statements June 2016 The amendment in this update replaces the incurred loss impairment methodology in current GAAP with a methodology that reflects expected credit losses on instruments within its scope, including trade receivables. This update is intended to provide financial statement users with more decision-useful information about the expected credit losses. January 2020 We are currently evaluating the impact of the adoption on our condensed consolidated financial statements. ASU 2018-13 , Fair Value Measurement (Topic 820), Disclosure Framework - Changes to the Disclosure Requirements for Fair Value Measurement August 2018 This ASU adds, modifies and removes several disclosure requirements relative to the three levels of inputs used to measure fair value in accordance with Topic 820, Fair Value Measurement. January 2020 We are currently evaluating the impact of the adoption on our condensed consolidated financial statements. |
Significant Accounting Policies | Significant Accounting Policies Except for the accounting policy for leases that was updated as a result of adopting ASU 2016-02, there were no material changes in our significant accounting policies during the nine months ended September 30, 2019. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K/A for the year ended December 31, 2018, as filed with the SEC, for additional information regarding our significant accounting policies. |
Business Acquisitions (Tables)
Business Acquisitions (Tables) - MAPADOC [Member] | 9 Months Ended |
Sep. 30, 2019 | |
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): Current assets $ 612 Goodwill 6,570 Intangible assets 4,900 Deferred revenue (300 ) $ 11,782 |
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: Estimated Estimated Fair Value Life Purchased Intangible Assets (in thousands) (in years) Developed technology $ 3,500 8 Subscriber relationships 1,400 8 $ 4,900 |
Revenue (Tables)
Revenue (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Revenue From Contract With Customer [Abstract] | |
Summary of Revenues by Revenue Stream | We derive our revenues primarily from the following revenue streams (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Recurring revenues: Fulfillment $ 55,546 $ 48,482 $ 161,685 $ 140,326 Analytics 9,422 8,750 27,540 25,639 Other 1,458 1,412 4,303 3,969 Recurring Revenues 66,426 58,644 193,528 169,934 One-time revenues 4,502 4,224 12,863 13,117 $ 70,928 $ 62,868 $ 206,391 $ 183,051 |
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 (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Balances, at beginning of period $ 10,063 $ 9,886 $ 9,857 $ 10,031 Invoiced set-up fees 2,599 2,697 7,965 7,807 Amortized set-up fees (2,584 ) (2,596 ) (7,744 ) (7,851 ) Balances, at end of period $ 10,078 $ 9,987 $ 10,078 $ 9,987 |
Deferred Costs (Tables)
Deferred Costs (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Deferred Costs [Abstract] | |
Summary of Deferred Costs and Amortization of Deferred Costs | The table below presents the activity of deferred costs and amortization of deferred costs (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Balances, at beginning of period $ 45,528 $ 42,544 $ 45,475 $ 39,933 Incurred deferred costs 12,676 12,391 36,888 36,807 Amortized deferred costs (12,623 ) (11,204 ) (36,782 ) (33,009 ) Balances, at end of period $ 45,581 $ 43,731 $ 45,581 $ 43,731 |
Financial Instruments (Tables)
Financial Instruments (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Financial Instruments Owned At Fair Value [Abstract] | |
Summary of Cash Equivalents and Short-term Investments | Cash equivalents and short-term investments consisted of the following (in thousands): September 30, 2019 Amortized Unrealized Fair Cost Gains (Losses) Value Cash equivalents: Money market funds $ 124,046 $ — $ 124,046 Certificates of deposit 6,747 — 6,747 Marketable securities: Corporate bonds 19,821 (11 ) 19,810 Commercial paper 9,961 41 10,002 U.S. treasury securities 14,778 109 14,887 Total $ 175,353 $ 139 $ 175,492 December 31, 2018 Amortized Unrealized Fair Cost Gains Value Cash equivalents: Money market funds $ 109,265 $ — $ 109,265 Certificates of deposit 7,000 — 7,000 Marketable securities: Corporate bonds 15,194 40 15,234 Commercial paper 9,889 76 9,965 U.S. treasury securities 12,300 38 12,338 Total $ 153,648 $ 154 $ 153,802 |
Summary of Financial Assets Measured at Fair Value on a Recurring Basis | The following table presents information about our financial assets that are measured at fair value on a recurring basis and indicates the fair value hierarchy of the valuation techniques utilized to determine such fair value (in thousands): September 30, 2019 Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 124,046 $ — $ — $ 124,046 Certificates of deposit 6,747 — — 6,747 Marketable securities: Corporate bonds — 19,810 — 19,810 Commercial paper — 10,002 — 10,002 U.S. treasury securities — 14,887 — 14,887 Total $ 130,793 $ 44,699 $ — $ 175,492 Liabilities: Earn-out liability $ — $ — $ 1,002 $ 1,002 Total $ — $ — $ 1,002 $ 1,002 December 31, 2018 Level 1 Level 2 Level 3 Total Assets: Cash equivalents: Money market funds $ 109,265 $ — $ — $ 109,265 Certificates of deposit 7,000 — — 7,000 Marketable securities: Corporate bonds — 15,234 — 15,234 Commercial paper — 9,965 — 9,965 U.S. treasury securities — 12,338 — 12,338 Total $ 116,265 $ 37,537 $ — $ 153,802 Liabilities: Earn-out liability $ — $ — $ 1,368 $ 1,368 Total $ — $ — $ 1,368 $ 1,368 |
Goodwill and Intangible Asset_2
Goodwill and Intangible Assets, net (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Goodwill And Intangible Assets Disclosure [Abstract] | |
Schedule of Changes in Net Carrying Amount of Goodwill | The changes in the net carrying amount of goodwill for the nine months ended September 30, 2019 are as follows (in thousands): 2019 Balance, January 1 $ 69,658 Goodwill acquired during the period 6,570 Foreign currency translation adjustments 138 Balance, September 30, 2019 $ 76,366 |
Intangible Assets | Intangible assets subject to amortization primarily include subscriber relationships, non-competition agreements and acquired technology and are amortized over their respective useful lives (ranging from 1 to 10 years). Intangible assets, net included the following (in thousands): September 30, 2019 Gross Foreign Carrying Accumulated Currency Amount Amortization Translation Net Subscriber relationships $ 43,640 $ (26,178 ) $ 76 $ 17,538 Non-competition agreements 2,495 (2,334 ) 7 168 Technology and other 8,502 (2,372 ) 8 6,138 $ 54,637 $ (30,884 ) $ 91 $ 23,844 December 31, 2018 Gross Foreign Carrying Accumulated Currency Amount Amortization Translation Net Subscriber relationships $ 43,212 $ (23,284 ) $ (623 ) $ 19,305 Non-competition agreements 2,560 (2,247 ) (28 ) 285 Technology and other 5,199 (2,012 ) (36 ) 3,151 $ 50,971 $ (27,543 ) $ (687 ) $ 22,741 |
Estimated Annual Amortization Expense Related to Intangible Assets Subject to Amortization | The estimated annual amortization expense related to intangible assets subject to amortization for the next five years is as follows (in thousands): Remainder of 2019 $ 1,412 2020 5,309 2021 4,471 2022 3,367 2023 3,297 Thereafter 5,988 $ 23,844 |
Other Assets (Tables)
Other Assets (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Other Assets [Abstract] | |
Summary of Changes in Net Amount of Capitalized Implementation Costs for Internal-use Software from Hosting Arrangements | The changes in the net amount of capitalized implementation costs for internal-use software from hosting arrangements for the nine months ended September 30, 2019 is as follows (in thousands): 2019 Balance, January 1 $ 455 Capitalized implementation fees 670 Amortization of implementation fees (52 ) Balance, September 30, 2019 $ 1,073 |
Leases (Tables)
Leases (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Leases [Abstract] | |
Summary of Non-Cancellable Operating Leases, Primarily for Office Space and Certain Equipment | We are obligated under non-cancellable operating leases, primarily for office space and certain equipment, as follows: September 30, 2019 Remaining Right-of-Use Term (years) Asset (in thousands) Minneapolis, MN lease 6 $ 10,823 Little Falls, NJ lease 4 1,674 Other leases < 1 - 3 1,151 $ 13,648 |
Components of Lease Expense | The components of lease expense were as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2019 Operating lease cost $ 650 $ 1,956 Variable lease cost 721 2,360 $ 1,371 $ 4,316 |
Schedule of Supplemental Cash Flow Information Related to Leases | Supplemental cash flow information related to leases was as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2019 Cash paid for amounts included in the measurement of lease liabilities Operating cash flows from operating leases 1,109 3,246 ROU assets obtained in exchange for operating lease liabilities — — |
Schedule of Supplemental Balance Sheet Information Related to Leases | Supplemental balance sheet information related to leases was as follows: September 30, 2019 Weighted-average remaining lease term - operating leases 5.1 years Weighted-average discount rate - operating leases 4.5 % |
Schedule of Future Minimum Payments Under Operating Leases | At September 30, 2019 , our future minimum payments under operating leases were as follows (in thousands): Remainder of 2019 $ 1,125 2020 3,635 2021 4,483 2022 4,042 2023 3,855 Thereafter 4,816 21,956 Less: imputed interest (2,451 ) $ 19,505 |
Schedule of Future Minimum Payments Under Operating Leases | At December 31, 2018, our future minimum payments under operating leases were as follows (in thousands): 2019 $ 4,209 2020 3,542 2021 4,414 2022 4,042 2023 3,855 Thereafter 4,816 $ 24,878 |
Stock-Based Compensation (Table
Stock-Based Compensation (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Stock-Based Compensation Expense | Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Cost of revenues $ 778 $ 535 $ 2,027 $ 1,587 Operating expenses Sales and marketing 784 691 2,208 2,054 Research and development 697 287 1,822 973 General and administrative 888 1,753 5,259 5,364 Total stock-based compensation expense $ 3,147 $ 3,266 $ 11,316 $ 9,978 Stock-based compensation expense by plan type was as follows (in thousands): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Stock options $ 619 $ 677 $ 2,548 $ 2,670 Performance share units 152 74 1,226 960 Restricted stock units 1,719 1,976 5,581 4,727 Restricted stock awards 128 137 409 352 Employee stock purchase plan 186 109 547 332 401(k) stock match 343 293 1,005 937 Total stock-based compensation expense $ 3,147 $ 3,266 $ 11,316 $ 9,978 |
Stock Option Activity | Stock options generally vest over four years and have a contractual term of seven to ten 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,194 53.92 Exercised (309,310 ) 21.57 Forfeited (39,818 ) 30.57 Outstanding at September 30, 2019 1,581,534 29.93 |
Weighted Average Grant Date Fair Value of Options Granted, Assumptions | The weighted average grant date fair value of options granted during the first nine months of 2019 was $16.86 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions: Volatility 33.2 % Dividend yield 0 % Life (in years) 4.4 Risk-free interest rate 2.41 % |
Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions | The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the Black-Scholes option pricing model with the following assumptions: Volatility 40 % Dividend yield 0 % Life (in years) 0.5 Risk-free interest rate 2.56 % |
PSUs and RSUs [Member] | |
PSUs and RSUs and Restricted Stock Awards | Activity for our PSUs and RSUs was as follows: Weighted Average PSUs and RSUs Grant Date Fair Value (#) ($/share) Outstanding at December 31, 2018 754,670 $ 29.95 Granted 272,454 55.90 Vested and common stock issued (190,624 ) 28.76 Forfeited (28,144 ) 33.14 Outstanding at September 30, 2019 808,356 38.86 |
Restricted Stock Award [Member] | |
PSUs and RSUs and Restricted Stock Awards | Our restricted stock awards activity was as follows: Restricted Stock Weighted Average Grant Awards (#) Date Fair Value ($/share) Outstanding at December 31, 2018 3,664 $ 37.22 Restricted common stock issued 9,840 51.80 Restrictions lapsed (8,584 ) 45.58 Forfeited — — Outstanding at September 30, 2019 4,920 $ 51.80 |
Net Income Per Share (Tables)
Net Income Per Share (Tables) | 9 Months Ended |
Sep. 30, 2019 | |
Earnings Per Share [Abstract] | |
Components of Computation of Basic and Diluted Net Income Per Share | The following table presents the components of the computation of basic and diluted net income per share for the periods indicated (in thousands, except per share amounts): Three Months Ended Nine Months Ended September 30, September 30, 2019 2018 2019 2018 Numerator Net income $ 8,941 $ 8,061 $ 24,550 $ 16,731 Denominator Weighted average common shares outstanding, basic 35,015 34,438 34,966 34,334 Options to purchase common stock 634 790 687 586 PSUs, RSUs and restricted stock awards 283 254 299 194 Weighted average common shares outstanding, diluted 35,932 35,482 35,952 35,114 Net income per share Basic $ 0.26 $ 0.23 $ 0.70 $ 0.49 Diluted $ 0.25 $ 0.23 $ 0.68 $ 0.48 Antidilutive shares (in thousands) 240 — 164 54 |
General - Additional Informatio
General - Additional Information (Detail) $ in Thousands | Aug. 22, 2019 | Aug. 08, 2019 | Sep. 30, 2019USD ($) | Jan. 01, 2019USD ($) |
Schedule Of Accounting Policies [Line Items] | ||||
Stock split ratio | 2 | 2 | ||
Percentage of stock dividend from stock split | 100.00% | |||
Operating leases, right of use assets | $ 13,648 | |||
Operating leases, lease liabilities | $ 19,505 | |||
ASU 2016-02 [Member] | ||||
Schedule Of Accounting Policies [Line Items] | ||||
Operating leases, right of use assets | $ 15,700 | |||
Operating leases, lease liabilities | $ 15,700 |
Business Acquisitions - Additio
Business Acquisitions - Additional Information (Detail) | Aug. 26, 2019USD ($) | Aug. 22, 2019 | Aug. 08, 2019 | Dec. 18, 2018USD ($)shares | Oct. 03, 2018USD ($) | Sep. 30, 2019USD ($) |
Business Acquisition [Line Items] | ||||||
Stock split description | two-for-one stock split | |||||
Stock split ratio | 2 | 2 | ||||
MAPADOC [Member] | ||||||
Business Acquisition [Line Items] | ||||||
Total purchase price | $ 11,782,000 | |||||
Payments to acquire business | 11,500,000 | |||||
Purchase price part of net working capital adjustment | $ 300,000 | |||||
E D I Admin [Member] | ||||||
Business Acquisition [Line Items] | ||||||
Payments to acquire business | $ 7,500,000 | |||||
Maximum payout of contingent consideration | 1,700,000 | |||||
Fair value of contingent consideration | $ 1,300,000 | $ 1,000,000 | ||||
E D I Admin [Member] | Contingent Consideration Liability [Member] | ||||||
Business Acquisition [Line Items] | ||||||
Other income | $ 400,000 | |||||
CovalentWorks [Member] | ||||||
Business Acquisition [Line Items] | ||||||
Payments to acquire business | $ 19,400,000 | |||||
Stock issued for acquisition | $ 3,400,000 | |||||
Stock issued for acquisition, Shares | shares | 80,956 | |||||
Stock split description | two-for-one stock split | |||||
Stock split ratio | 2 |
Business Acquisitions - Estimat
Business Acquisitions - Estimated Fair Values of Assets Acquired and Liabilities Assumed at Acquisition Date (Detail) - USD ($) $ in Thousands | Sep. 30, 2019 | Aug. 26, 2019 | Dec. 31, 2018 |
Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net | |||
Goodwill | $ 76,366 | $ 69,658 | |
MAPADOC [Member] | |||
Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net | |||
Current assets | $ 612 | ||
Goodwill | 6,570 | ||
Intangible assets | 4,900 | ||
Deferred revenue | (300) | ||
Total purchase price | $ 11,782 |
Business Acquisitions - Estim_2
Business Acquisitions - Estimated Fair Value of Purchased Intangible Assets and Estimated Useful Lives (Detail) - MAPADOC [Member] $ in Thousands | Aug. 26, 2019USD ($) |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 4,900 |
Developed Technology [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 3,500 |
Estimated Life (in years) | 8 years |
Subscriber Relationships [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Estimated Fair Value | $ 1,400 |
Estimated Life (in years) | 8 years |
Revenue - Summary of Revenues b
Revenue - Summary of Revenues by Revenue Stream (Detail) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Revenue Recognition [Line Items] | ||||
Revenues | $ 70,928 | $ 62,868 | $ 206,391 | $ 183,051 |
Recurring Revenues [Member] | ||||
Revenue Recognition [Line Items] | ||||
Revenues | 66,426 | 58,644 | 193,528 | 169,934 |
One-time Revenues [Member] | ||||
Revenue Recognition [Line Items] | ||||
Revenues | 4,502 | 4,224 | 12,863 | 13,117 |
Fulfillment [Member] | Recurring Revenues [Member] | ||||
Revenue Recognition [Line Items] | ||||
Revenues | 55,546 | 48,482 | 161,685 | 140,326 |
Analytics [Member] | Recurring Revenues [Member] | ||||
Revenue Recognition [Line Items] | ||||
Revenues | 9,422 | 8,750 | 27,540 | 25,639 |
Other [Member] | Recurring Revenues [Member] | ||||
Revenue Recognition [Line Items] | ||||
Revenues | $ 1,458 | $ 1,412 | $ 4,303 | $ 3,969 |
Revenue - Additional Informatio
Revenue - Additional Information (Detail) | 9 Months Ended |
Sep. 30, 2019 | |
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 |
Analytics Solution [Member] | |
Disaggregation Of Revenue [Line Items] | |
Set up fees recognized period | 1 year |
Minimum [Member] | |
Disaggregation Of Revenue [Line Items] | |
Customer contract cancellation period | 30 days |
Current amount recognition period of set up fees | 1 month |
Long term amount recognition period of set up fees | 13 months |
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 |
Current amount recognition period of set up fees | 12 months |
Long term amount recognition period of set up fees | 24 months |
Revenue - Summary of Deferred R
Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) - Set-Up Fees [Member] - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Deferred Revenue Arrangement [Line Items] | ||||
Balances, at beginning of period | $ 10,063 | $ 9,886 | $ 9,857 | $ 10,031 |
Invoiced set-up fees | 2,599 | 2,697 | 7,965 | 7,807 |
Amortized set-up fees | (2,584) | (2,596) | (7,744) | (7,851) |
Balances, at end of period | $ 10,078 | $ 9,987 | $ 10,078 | $ 9,987 |
Deferred Costs - Additional Inf
Deferred Costs - Additional Information (Detail) | 9 Months Ended |
Sep. 30, 2019 | |
Deferred Costs [Abstract] | |
Deferred commission expected amortization period | 2 years |
Deferred customer implementation costs expected amortization period | 2 years |
Deferred Costs - Summary of Def
Deferred Costs - Summary of Deferred Costs and Amortization of Deferred Costs (Detail) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Deferred Costs [Abstract] | ||||
Balances, at beginning of period | $ 45,528 | $ 42,544 | $ 45,475 | $ 39,933 |
Incurred deferred costs | 12,676 | 12,391 | 36,888 | 36,807 |
Amortized deferred costs | (12,623) | (11,204) | (36,782) | (33,009) |
Balances, at end of period | $ 45,581 | $ 43,731 | $ 45,581 | $ 43,731 |
Financial Instruments - Summary
Financial Instruments - Summary of Cash Equivalents and Short-term Investments (Detail) - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
Money Market Funds [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | $ 124,046 | $ 109,265 |
Fair Value | 124,046 | 109,265 |
Certificates of Deposit [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 6,747 | 7,000 |
Fair Value | 6,747 | 7,000 |
Corporate Bonds [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 19,821 | 15,194 |
Unrealized Gains (Losses) | (11) | 40 |
Fair Value | 19,810 | 15,234 |
Commercial Paper [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 9,961 | 9,889 |
Unrealized Gains (Losses) | 41 | 76 |
Fair Value | 10,002 | 9,965 |
U.S. Treasury Securities [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 14,778 | 12,300 |
Unrealized Gains (Losses) | 109 | 38 |
Fair Value | 14,887 | 12,338 |
Financial Instruments [Member] | ||
Schedule of Financial Instruments [Line Items] | ||
Amortized Cost | 175,353 | 153,648 |
Unrealized Gains (Losses) | 139 | 154 |
Fair Value | $ 175,492 | $ 153,802 |
Financial Instruments - Additio
Financial Instruments - Additional Information (Detail) - E D I Admin [Member] | Oct. 03, 2018USD ($) |
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | |
Maximum payout of contingent consideration | $ 1,700,000 |
Level 3 [Member] | |
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | |
Maximum payout of contingent consideration | $ 1,700,000 |
Financial Instruments - Summa_2
Financial Instruments - Summary of Financial Assets Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring [Member] - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | $ 175,492 | $ 153,802 |
Liabilities fair value | 1,002 | 1,368 |
Money Market Funds [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 124,046 | 109,265 |
Certificates of Deposit [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 6,747 | 7,000 |
Corporate Bonds [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 19,810 | 15,234 |
Commercial Paper [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 10,002 | 9,965 |
U.S. Treasury Securities [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 14,887 | 12,338 |
Level 1 [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 130,793 | 116,265 |
Level 1 [Member] | Money Market Funds [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 124,046 | 109,265 |
Level 1 [Member] | Certificates of Deposit [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 6,747 | 7,000 |
Level 2 [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 44,699 | 37,537 |
Level 2 [Member] | Corporate Bonds [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 19,810 | 15,234 |
Level 2 [Member] | Commercial Paper [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 10,002 | 9,965 |
Level 2 [Member] | U.S. Treasury Securities [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Assets fair value | 14,887 | 12,338 |
Level 3 [Member] | ||
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] | ||
Liabilities fair value | $ 1,002 | $ 1,368 |
Goodwill and Intangible Asset_3
Goodwill and Intangible Assets, net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail) $ in Thousands | 9 Months Ended |
Sep. 30, 2019USD ($) | |
Goodwill And Intangible Assets Disclosure [Abstract] | |
Balance, January 1 | $ 69,658 |
Goodwill acquired during the period | 6,570 |
Foreign currency translation adjustments | 138 |
Balance, September 30, 2019 | $ 76,366 |
Goodwill and Intangible Asset_4
Goodwill and Intangible Assets, net - Additional Information (Detail) | 9 Months Ended |
Sep. 30, 2019 | |
Minimum [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Intangible assets useful life | 1 year |
Maximum [Member] | |
Finite-Lived Intangible Assets [Line Items] | |
Intangible assets useful life | 10 years |
Goodwill and Intangible Asset_5
Goodwill and Intangible Assets, net - Intangible Assets (Detail) - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | $ 54,637 | $ 50,971 |
Accumulated Amortization | (30,884) | (27,543) |
Foreign Currency Translation | 91 | (687) |
Net | 23,844 | 22,741 |
Subscriber Relationships [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | 43,640 | 43,212 |
Accumulated Amortization | (26,178) | (23,284) |
Foreign Currency Translation | 76 | (623) |
Net | 17,538 | 19,305 |
Non-competition Agreements [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | 2,495 | 2,560 |
Accumulated Amortization | (2,334) | (2,247) |
Foreign Currency Translation | 7 | (28) |
Net | 168 | 285 |
Technology and Other [Member] | ||
Finite-Lived Intangible Assets [Line Items] | ||
Gross Carrying Amount | 8,502 | 5,199 |
Accumulated Amortization | (2,372) | (2,012) |
Foreign Currency Translation | 8 | (36) |
Net | $ 6,138 | $ 3,151 |
Goodwill and Intangible Asset_6
Goodwill and Intangible Assets, net - Estimated Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail) - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
Goodwill And Intangible Assets Disclosure [Abstract] | ||
Remainder of 2019 | $ 1,412 | |
2020 | 5,309 | |
2021 | 4,471 | |
2022 | 3,367 | |
2023 | 3,297 | |
Thereafter | 5,988 | |
Net | $ 23,844 | $ 22,741 |
Other Assets - Summary of Chang
Other Assets - Summary of Changes in Net Amount of Capitalized Implementation Costs for Internal-use Software from Hosting Arrangements (Detail) $ in Thousands | 9 Months Ended |
Sep. 30, 2019USD ($) | |
Capitalized Computer Software Net [Abstract] | |
Balance, January 1 | $ 455 |
Capitalized implementation fees | 670 |
Amortization of implementation fees | (52) |
Balance, September 30, 2019 | $ 1,073 |
Other Assets - Additional Infor
Other Assets - Additional Information (Detail) | 9 Months Ended |
Sep. 30, 2019USD ($) | |
Capitalized Computer Software Net [Abstract] | |
Impairment losses on capitalized implementation costs | $ 0 |
Leases - Summary of Non-Cancell
Leases - Summary of Non-Cancellable Operating Leases, Primarily for Office Space and Certain Equipment (Detail) $ in Thousands | Sep. 30, 2019USD ($) |
Lessee Lease Description [Line Items] | |
Right-of-Use Asset | $ 13,648 |
Minneapolis, MN Lease [Member] | |
Lessee Lease Description [Line Items] | |
Remaining Term (years) | 6 years |
Right-of-Use Asset | $ 10,823 |
Little Falls, NJ Lease [Member] | |
Lessee Lease Description [Line Items] | |
Remaining Term (years) | 4 years |
Right-of-Use Asset | $ 1,674 |
Other Leases [Member] | |
Lessee Lease Description [Line Items] | |
Right-of-Use Asset | $ 1,151 |
Other Leases [Member] | Minimum [Member] | |
Lessee Lease Description [Line Items] | |
Remaining Term (years) | 1 year |
Other Leases [Member] | Maximum [Member] | |
Lessee Lease Description [Line Items] | |
Remaining Term (years) | 3 years |
Leases - Additional Information
Leases - Additional Information (Detail) $ in Millions | Dec. 20, 2017ft²Option | Feb. 25, 2016ft² | Sep. 30, 2019USD ($) | Dec. 31, 2020ft² |
Lessee Lease Description [Line Items] | ||||
Lease extension period, number of years | 5 years | |||
ASU 2016-02 [Member] | ||||
Lessee Lease Description [Line Items] | ||||
Transition amount | $ | $ 15.7 | |||
Little Falls, NJ Lease [Member] | ||||
Lessee Lease Description [Line Items] | ||||
Lease extension period, number of years | 5 years | |||
Current leased space | ft² | 26,000 | |||
Lease agreement expires, date | Jun. 30, 2023 | |||
Incentives | $ | 0.9 | |||
Current Headquarters [Member] | ||||
Lessee Lease Description [Line Items] | ||||
Lease extension period, number of years | 5 years | |||
Lease agreement expires, date | Apr. 30, 2025 | |||
Number of options to extend term of the lease | Option | 2 | |||
Incentives | $ | $ 6.4 | |||
Current Headquarters [Member] | Minneapolis, Minnesota [Member] | ||||
Lessee Lease Description [Line Items] | ||||
Current leased space | ft² | 189,000 | |||
Current Headquarters [Member] | Scenario, Forecast [Member] | Minneapolis, Minnesota [Member] | ||||
Lessee Lease Description [Line Items] | ||||
Future expansion of headquarters premises | ft² | 25,000 |
Leases - Components of Lease Ex
Leases - Components of Lease Expense (Detail) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended |
Sep. 30, 2019 | Sep. 30, 2019 | |
Leases [Abstract] | ||
Operating lease cost | $ 650 | $ 1,956 |
Variable lease cost | 721 | 2,360 |
Lease expense | $ 1,371 | $ 4,316 |
Leases - Schedule of Supplement
Leases - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended |
Sep. 30, 2019 | Sep. 30, 2019 | |
Cash paid for amounts included in the measurement of lease liabilities | ||
Operating cash flows from operating leases | $ 1,109 | $ 3,246 |
Leases - Schedule of Suppleme_2
Leases - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail) | Sep. 30, 2019 |
Leases [Abstract] | |
Weighted-average remaining lease term - operating leases | 5 years 1 month 6 days |
Weighted-average discount rate - operating leases | 4.50% |
Leases - Schedule of Future Min
Leases - Schedule of Future Minimum Payments Under Operating Leases (Detail) - USD ($) $ in Thousands | Sep. 30, 2019 | Dec. 31, 2018 |
Leases [Abstract] | ||
Remainder of 2019 | $ 1,125 | |
2020 | 3,635 | |
2021 | 4,483 | |
2022 | 4,042 | |
2023 | 3,855 | |
Thereafter | 4,816 | |
Future minimum payments | 21,956 | |
Less: imputed interest | (2,451) | |
Operating lease liability | $ 19,505 | |
2019 | $ 4,209 | |
2020 | 3,542 | |
2021 | 4,414 | |
2022 | 4,042 | |
2023 | 3,855 | |
Thereafter | 4,816 | |
Operating leases, total | $ 24,878 |
Stock-Based Compensation - Addi
Stock-Based Compensation - Additional Information (Detail) $ / shares in Units, $ in Millions | Aug. 22, 2019shares | Aug. 08, 2019 | Feb. 28, 2019shares | Feb. 28, 2018 | Feb. 28, 2017 | Sep. 30, 2019USD ($)Offering$ / sharesshares | Sep. 30, 2018USD ($) | Sep. 30, 2019USD ($)Offering$ / sharesshares | Sep. 30, 2018USD ($) |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Stock split ratio | 2 | 2 | |||||||
Change in number of common stock, shares authorized | 0 | ||||||||
Shares available for grant | 12,255,888,000,000 | 12,255,888,000,000 | |||||||
Unrecognized stock-based compensation expense | $ | $ 21.3 | $ 21.3 | |||||||
Unrecognized stock-based compensation, expected to be recognized, weighted average period | 2 years 7 months 6 days | ||||||||
Employee Stock Purchase Plan [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Additional shares reserved for issuance under the plan | 2,000,000 | 2,000,000 | |||||||
Purchase price as a percentage of fair market value | 85.00% | ||||||||
Number of offerings per year | Offering | 2 | 2 | |||||||
Amount withheld from employees | $ | $ 0.7 | $ 0.5 | $ 1.2 | $ 0.8 | |||||
Equity Incentive Plan [Member] | 2010 [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Additional shares reserved for issuance under the plan | 2,081,488 | ||||||||
Stock Options [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Vesting period | 4 years | ||||||||
Stock options exercisable | 1,129,294 | 1,129,294 | |||||||
Weighted average exercise price | $ / shares | $ 27.03 | $ 27.03 | |||||||
Weighted average remaining contractual life | 3 years 2 months 12 days | ||||||||
Weighted average fair value per share of options granted | $ / shares | $ 16.86 | ||||||||
Stock Options [Member] | Minimum [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Stock options contractual term range | 7 years | ||||||||
Stock Options [Member] | Maximum [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Stock options contractual term range | 10 years | ||||||||
Performance Share Unit [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Vesting period | 3 years | 3 years | 3 years | ||||||
Restricted Stock Units [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Vesting period | 4 years | ||||||||
Number of RSU's vested and not issued during the period | 88,196 | ||||||||
Restricted Stock Award [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Restricted stock awards units vest over, period | 1 year | ||||||||
401(k) Stock Match [Member] | |||||||||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||||||||
Maximum allowable contribution by employee percentage | 80.00% | ||||||||
Defined benefit plan employer matching contribution percent | 50.00% | ||||||||
Maximum annual contribution per employee, percent | 6.00% |
Stock-Based Compensation - Stoc
Stock-Based Compensation - Stock-Based Compensation Expense (Detail) - USD ($) $ in Thousands | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | $ 3,147 | $ 3,266 | $ 11,316 | $ 9,978 |
Stock Options [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 619 | 677 | 2,548 | 2,670 |
Performance Share Unit [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Performance Share Units | 152 | 74 | 1,226 | 960 |
Restricted Stock Units [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 1,719 | 1,976 | 5,581 | 4,727 |
Restricted Stock Award [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 128 | 137 | 409 | 352 |
Employee Stock Purchase Plan [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 186 | 109 | 547 | 332 |
401(k) Stock Match [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 343 | 293 | 1,005 | 937 |
Cost of Revenues [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 778 | 535 | 2,027 | 1,587 |
Sales and Marketing [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 784 | 691 | 2,208 | 2,054 |
Research and Development [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | 697 | 287 | 1,822 | 973 |
General and Administrative [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] | ||||
Stock-based compensation expense | $ 888 | $ 1,753 | $ 5,259 | $ 5,364 |
Stock-Based Compensation - St_2
Stock-Based Compensation - Stock Option Activity (Detail) | 9 Months Ended |
Sep. 30, 2019$ / sharesshares | |
Disclosure Of Compensation Related Costs Sharebased Payments [Abstract] | |
Options Outstanding, Beginning balance | shares | 1,746,468 |
Options, Granted | shares | 184,194 |
Options, Exercised | shares | (309,310) |
Options, Forfeited | shares | (39,818) |
Options Outstanding, Ending balance | shares | 1,581,534 |
Weighted Average Exercise Price, Outstanding, Beginning Balance | $ / shares | $ 25.93 |
Weighted Average Exercise Price, Granted | $ / shares | 53.92 |
Weighted Average Exercise Price, Exercised | $ / shares | 21.57 |
Weighted Average Exercise Price, Forfeited | $ / shares | 30.57 |
Weighted Average Exercise Price, Outstanding, Ending Balance | $ / shares | $ 29.93 |
Stock-Based Compensation - Weig
Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail) - Stock Options [Member] | 9 Months Ended |
Sep. 30, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |
Volatility | 33.20% |
Dividend yield | 0.00% |
Life (in years) | 4 years 4 months 24 days |
Risk-free interest rate | 2.41% |
Stock-Based Compensation - PSUs
Stock-Based Compensation - PSUs and RSUs (Detail) - PSU's and RSU's [Member] | 9 Months Ended |
Sep. 30, 2019$ / sharesshares | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |
Stock awards, Outstanding, Beginning Balance | shares | 754,670 |
Granted, stock units | shares | 272,454 |
Vested and common stock issued, stock units | shares | (190,624) |
Forfeited, stock units | shares | (28,144) |
Stock awards, Outstanding, Ending Balance | shares | 808,356 |
Weighted average grant date fair value, Outstanding, Beginning Balance | $ / shares | $ 29.95 |
Granted, Weighted Average Grant Date Fair Value | $ / shares | 55.90 |
Vested and common stock issued, Weighted Average Grant Date Fair Value | $ / shares | 28.76 |
Forfeited, Weighted Average Grant Date Fair Value | $ / shares | 33.14 |
Weighted average grant date fair value, Outstanding, Ending Balance | $ / shares | $ 38.86 |
Stock-Based Compensation - Rest
Stock-Based Compensation - Restricted Stock Awards (Detail) - Restricted Stock Award [Member] | 9 Months Ended |
Sep. 30, 2019$ / sharesshares | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |
Stock awards, Outstanding, Beginning Balance | shares | 3,664 |
Restricted common stock issued, stock awards | shares | 9,840 |
Restrictions lapsed, stock awards | shares | (8,584) |
Stock awards, Outstanding, Ending Balance | shares | 4,920 |
Weighted average grant date fair value, Outstanding, Beginning Balance | $ / shares | $ 37.22 |
Restricted common stock issued, Weighted Average Grant Date Fair Value | $ / shares | 51.80 |
Restrictions lapsed, Weighted Average Grant Date Fair Value | $ / shares | 45.58 |
Weighted average grant date fair value, Outstanding, Ending Balance | $ / shares | $ 51.80 |
Stock-Based Compensation - Fair
Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail) - Employee Stock Purchase Plan [Member] | 9 Months Ended |
Sep. 30, 2019 | |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |
Volatility | 40.00% |
Dividend yield | 0.00% |
Life (in years) | 6 months |
Risk-free interest rate | 2.56% |
Income Taxes - Additional Infor
Income Taxes - Additional Information (Detail) | Sep. 30, 2019USD ($) |
Income Tax Disclosure [Abstract] | |
Unrecognized tax benefits | $ 0 |
Accrued interest or tax penalties | $ 0 |
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 | 3 Months Ended | 9 Months Ended | ||
Sep. 30, 2019 | Sep. 30, 2018 | Sep. 30, 2019 | Sep. 30, 2018 | |
Numerator | ||||
Net income | $ 8,941 | $ 8,061 | $ 24,550 | $ 16,731 |
Denominator | ||||
Weighted average common shares outstanding, basic | 35,015 | 34,438 | 34,966 | 34,334 |
Options to purchase common stock | 634 | 790 | 687 | 586 |
PSUs, RSUs and restricted stock awards | 283 | 254 | 299 | 194 |
Weighted average common shares outstanding, diluted | 35,932 | 35,482 | 35,952 | 35,114 |
Net income per share | ||||
Basic | $ 0.26 | $ 0.23 | $ 0.70 | $ 0.49 |
Diluted | $ 0.25 | $ 0.23 | $ 0.68 | $ 0.48 |
Antidilutive shares (in thousands) | 240 | 164 | 54 |
Net Income Per Share - Addition
Net Income Per Share - Additional Information (Detail) | Aug. 22, 2019 | Aug. 08, 2019 | Sep. 30, 2019 |
Net Income Per Share [Abstract] | |||
Stock split description | two-for-one stock split | ||
Stock split ratio | 2 | 2 |
Subsequent Event - Additional I
Subsequent Event - Additional Information (Detail) - Common Stock [Member] - USD ($) $ in Millions | Oct. 01, 2019 | Sep. 30, 2019 |
Subsequent Event [Line Items] | ||
Stock repurchase program, authorized amount | $ 50 | |
Stock repurchase program, expiration date | Nov. 2, 2019 | |
Stock repurchase program, remaining available amount | $ 9.3 | |
Subsequent Event [Member] | ||
Subsequent Event [Line Items] | ||
Stock repurchase program, authorized amount | $ 100 | |
Stock repurchase program, expiration date | Nov. 2, 2021 |