{"id":956858,"date":"2026-04-30T16:52:11","date_gmt":"2026-04-30T20:52:11","guid":{"rendered":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/"},"modified":"2026-04-30T16:52:11","modified_gmt":"2026-04-30T20:52:11","slug":"sps-commerce-reports-first-quarter-2026-financial-results","status":"publish","type":"post","link":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/","title":{"rendered":"SPS Commerce Reports First Quarter 2026 Financial Results"},"content":{"rendered":"<h2>\nFirst quarter 2026 revenue grew 6% and recurring revenue grew 7% from the first quarter of 2025<br \/>\n<\/h2>\n<div class=\"mw_release\">\n<p>MINNEAPOLIS, April  30, 2026  (GLOBE NEWSWIRE) &#8212; SPS Commerce, Inc. (NASDAQ: SPSC), the leading intelligent supply chain network, today announced financial results for the first quarter ended March 31, 2026.<\/p>\n<p>\n        <strong><br \/>\n          <u>Financial Highlights<\/u><br \/>\n        <\/strong>\n      <\/p>\n<p>\n        <strong>First Quarter 2026 Financial Highlights<\/strong>\n      <\/p>\n<ul type=\"disc\">\n<li>Revenue was $192.1 million in the first quarter of 2026, compared to $181.5 million in the first quarter of 2025, reflecting 6% growth.<\/li>\n<li>Recurring revenue grew 7% from the first quarter of 2025.<\/li>\n<li>Net income was $19.7 million or $0.53 per diluted share, compared to net income of $22.2 million or $0.58 per diluted share in the first quarter of 2025.<\/li>\n<li>Non-GAAP income per diluted share was $1.10, compared to non-GAAP income per diluted share of $1.00 in the first quarter of 2025.<\/li>\n<li>Adjusted EBITDA for the first quarter of 2026 increased 7% to $57.9 million compared to the first quarter of 2025.<\/li>\n<li style=\"margin-bottom:0.1pt\">Share repurchases in the first quarter of 2026 totaled $47.1 million.\n<\/li>\n<\/ul>\n<p>\u201cSPS Commerce delivered a solid performance this quarter, led by growth of our core business and momentum in cross-selling across our customer base,\u201d said Chad Collins, CEO of SPS Commerce. \u201cTo further empower our customers, we are excited by the launch of MAX, our new set of AI capabilities. Embedded into existing supply chain workflows and powered by proprietary network data, MAX guides customer connections to support the success of their trading relationships.\u201d<\/p>\n<p>\u201cSPS Commerce\u2019s core business fundamentals remain strong. We are focused on driving margin expansion through operating leverage and AI-driven efficiencies,\u201d said Joe Del Preto, CFO of SPS Commerce. \u201cWith a large addressable market, a clear path to scale, and disciplined capital allocation, SPS is well positioned to deliver balanced growth and long-term shareholder value.\u201d<\/p>\n<p>\n        <strong><br \/>\n          <u>Guidance<\/u><br \/>\n        <\/strong><br \/>\n        <br \/>\n        <strong>Second Quarter 2026 Guidance<\/strong>\n      <\/p>\n<ul type=\"disc\">\n<li>Revenue is expected to be in the range of $194.5 million to $196.5 million, representing 4% to 5% year-over-year growth.<\/li>\n<li>Net income per diluted share is expected to be in the range of $0.53 to $0.56, with fully diluted weighted average shares outstanding of 37.3 million shares.<\/li>\n<li>Non-GAAP income per diluted share is expected to be in the range of $1.06 to $1.09.<\/li>\n<li>Adjusted EBITDA is expected to be in the range of $60.9 million to $62.4 million.<\/li>\n<li>Non-cash, share-based compensation expense is expected to be $19.0 million, depreciation expense is expected to be $5.2 million, and amortization expense is expected to be $9.4 million.\n<\/li>\n<\/ul>\n<p>\n        <strong>Fiscal Year 2026 Guidance<\/strong>\n      <\/p>\n<ul type=\"disc\">\n<li>Revenue is expected to be in the range of $796.0 million to $802.0 million, representing 6% to 7% growth over 2025.<\/li>\n<li>Net income per diluted share is expected to be in the range of $2.66 to $2.69, with fully diluted weighted average shares outstanding of 37.3 million shares.<\/li>\n<li>Non-GAAP income per diluted share is expected to be in the range of $4.73 to $4.76.<\/li>\n<li>Adjusted EBITDA is expected to be in the range of $262.8 million to $267.3 million, representing 14% to 16% growth over 2025.<\/li>\n<li>Non-cash, share-based compensation expense is expected to be $69.8 million, depreciation expense is expected to be $23.0 million, and amortization expense is expected to be $37.4 million.\n<\/li>\n<\/ul>\n<p>The forward-looking measures and the underlying assumptions involve significant known and unknown risks and uncertainties, and actual results may vary materially. The Company does not present a reconciliation of the forward-looking non-GAAP financial measures, including Adjusted EBITDA, Adjusted EBITDA margin, and non-GAAP income per share, to the most directly comparable GAAP financial measures because it is impractical to forecast certain items without unreasonable efforts due to the uncertainty and inherent difficulty of predicting, within a reasonable range, the occurrence and financial impact of and the periods in which such items may be recognized.<\/p>\n<p>\n        <strong><br \/>\n          <u>Quarterly Conference Call<\/u><br \/>\n        <\/strong>\n      <\/p>\n<p>To access the call, please dial 1-833-816-1382, or outside the U.S. 1-412-317-0475 at least 15 minutes prior to the 3:30 p.m. CT start time. Please ask to join the SPS Commerce Q1 2026 conference call. A live webcast of the call will also be available at <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=RH5_ze7I6YJ_bU4f7MlOIq_YzKM49-_KC2wRp47UQ2bdumo0wXktOU-8Wg2GnhRQJ-lj1x5UARURR33qy7QJmeBhcgg-2CxfJAcn81HOBau-u-wtIl10rvBlVOQj473b\" rel=\"nofollow\" target=\"_blank\">http:\/\/investors.spscommerce.com<\/a>\u00a0under the Events and Presentations menu. The replay will also be available on our website at <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=RH5_ze7I6YJ_bU4f7MlOIq_YzKM49-_KC2wRp47UQ2YSwDBho_x2DsT65N4atv5_VhnURcLYkvPySvxDV60VTrNuJLfDUfep0LkeAZWaZ5KPoIpflr97_HNGr8t_MzY9\" rel=\"nofollow\" target=\"_blank\">http:\/\/investors.spscommerce.com<\/a>.<\/p>\n<p>\n        <strong><br \/>\n          <u>About SPS Commerce<\/u><br \/>\n        <\/strong>\n      <\/p>\n<p>SPS Commerce is the leading intelligent supply chain network, connecting trading partners around the globe to optimize supply chain operations for all retail partners. We support data-driven partnerships with innovative cloud technology, customer-obsessed service, and accessible experts so our customers can focus on what they do best. Over 50,000 recurring revenue customers in retail, grocery, distribution, supply, manufacturing, and logistics are using SPS as their retail network. SPS is headquartered in Minneapolis. For additional information, contact SPS at 866-245-8100 or visit www.spscommerce.com.<\/p>\n<p>SPS COMMERCE, SPS, SPS logo and INFINITE RETAIL POWER are marks of SPS Commerce, Inc. and registered in the U.S. Patent and Trademark Office, along with other SPS marks. Such marks may also be registered or otherwise protected in other countries.\u00a0<\/p>\n<p>SPS-F<\/p>\n<p>\n        <strong><br \/>\n          <u>Use of Non-GAAP Financial Measures<\/u><br \/>\n        <\/strong>\n      <\/p>\n<p>To supplement our condensed consolidated financial statements, we provide investors with Adjusted EBITDA, Adjusted EBITDA Margin, and non-GAAP income per share, all of which are non-GAAP financial measures. We believe that these non-GAAP financial measures provide useful information to our management, Board of Directors, and investors regarding certain financial and business trends relating to our financial condition and results of operations.<\/p>\n<p>Our management uses these non-GAAP financial measures to compare our performance to that of prior periods for trend analyses and planning purposes. Adjusted EBITDA is also used for purposes of determining executive and senior management incentive compensation. We believe these non-GAAP financial measures are useful to an investor as they are widely used in evaluating operating performance. Adjusted EBITDA and Adjusted EBITDA Margin are used to measure operating performance without regard to items such as depreciation and amortization, which can vary depending upon accounting methods and the book value of assets, and to present a meaningful measure of corporate performance exclusive of capital structure and the method by which assets were acquired.<\/p>\n<p>These non-GAAP financial measures should not be considered a substitute for, or superior to, financial measures calculated in accordance with GAAP. These non-GAAP financial measures exclude significant expenses and income that are required by GAAP to be recorded in our condensed consolidated financial statements and are subject to inherent limitations. Investors should review the reconciliations of non-GAAP financial measures to the comparable GAAP financial measures that are included in this press release.<\/p>\n<p>\n        <strong>Adjusted EBITDA Measures:<\/strong>\n      <\/p>\n<p>\n        <u>Adjusted EBITDA<\/u> consists of net income adjusted for income tax expense, depreciation and amortization expense, stock-based compensation expense, realized gain from investments and foreign currency transactions, investment income, and other adjustments as necessary for a fair presentation. Other adjustments for the three months ended March 31, 2026, included the expense impact from disposals of other equipment. Net income is the most directly comparable GAAP measure of financial performance<\/p>\n<p>\n        <u>Adjusted EBITDA Margin<\/u> consists of Adjusted EBITDA divided by revenue. Margin, the comparable GAAP measure of financial performance, consists of net income divided by revenue.<\/p>\n<p>\n        <strong>Non-GAAP Income Per Share Measure:<\/strong>\n      <\/p>\n<p>\n        <u>Non-GAAP income per share<\/u> consists of net income adjusted for stock-based compensation expense, amortization expense related to intangible assets, realized gain from investments and foreign currency transactions, other adjustments as necessary for a fair presentation, including for the three months ended March\u00a031, 2026, the expense impact from disposals of other equipment, and the corresponding tax impacts of the adjustments to net income, divided by the weighted average number of shares of common and diluted stock outstanding during each period. Net income per share, the most directly comparable GAAP measure of financial performance, consists of net income divided by the weighted average number of shares of common and diluted stock outstanding during each period. To quantify the tax effects, we recalculated income tax expense excluding the direct book and tax effects of the specific items constituting the non-GAAP adjustments. The difference between this recalculated income tax expense and GAAP income tax expense is presented as the income tax effect of the non-GAAP adjustments.<\/p>\n<p>\n        <strong><br \/>\n          <u>Forward-Looking Statements<\/u><br \/>\n        <\/strong>\n      <\/p>\n<p>This press release may contain forward-looking statements, including information about management&#8217;s view of SPS Commerce&#8217;s future expectations, plans and prospects, including our views regarding future execution within our business, the opportunity we see in the retail supply chain world and our performance for the second quarter and full year of 2026, within the safe harbor provisions under The Private Securities Litigation Reform Act of 1995. These statements involve known and unknown risks, uncertainties and other factors which may cause the results of SPS Commerce to be materially different than those expressed or implied in such statements. Certain of these risk factors and others are included in documents SPS Commerce files with the Securities and Exchange Commission, including but not limited to, SPS Commerce&#8217;s Annual Report on Form 10-K for the year ended December 31, 2025, as well as subsequent reports filed with the Securities and Exchange Commission. Other unknown or unpredictable factors also could have material adverse effects on SPS Commerce&#8217;s future results. The forward-looking statements included in this press release are made only as of the date hereof. SPS Commerce cannot guarantee future results, levels of activity, performance or achievements. Accordingly, you should not place undue reliance on these forward-looking statements. Finally, SPS Commerce expressly disclaims any intent or obligation to update or revise any forward-looking statements, whether as a result of new information, future events, or otherwise.<\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"8\" style=\"width:99.9387%;text-align: center;vertical-align: middle\">\n            <strong>SPS COMMERCE, INC.<\/strong><br \/>\n            <br \/>\n            <strong>CONSOLIDATED BALANCE SHEETS<\/strong><br \/>\n            <br \/>(Unaudited; In thousands, except shares)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%\">\u00a0<\/td>\n<td style=\"width:0.980392%\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>March 31,<\/strong><br \/>\n            <br \/>\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"width:0.980392%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong><br \/>\n            <br \/>\n            <strong>2025<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>ASSETS<\/strong>\n          <\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Current assets<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:71%;width:71.0172%;min-width:71%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Cash and cash equivalents<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:12%;width:12.0098%;min-width:12%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">154,271<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:12%;width:12.0098%;min-width:12%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">151,355<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accounts receivable<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">72,003<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">75,295<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Allowance for credit losses<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(6,897<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(7,129<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Accounts receivable, net<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">65,106<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">68,166<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred costs<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">65,906<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">66,693<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Other assets<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">43,457<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">49,090<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Total current assets<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">328,740<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">335,304<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Property and equipment, net<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">46,154<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">43,117<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Operating lease right-of-use assets<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">4,856<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">5,025<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Goodwill<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">540,836<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">541,719<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Intangible assets, net<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">206,069<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">215,815<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Other assets<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred costs, non-current<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">20,294<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">20,719<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred income tax assets<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">511<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">493<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Other assets, non-current<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">13,748<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">7,667<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Total assets<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,161,208<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,169,859<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>LIABILITIES AND STOCKHOLDERS\u2019 EQUITY<\/strong>\n          <\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: double black 3pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: double black 3pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Current liabilities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accounts payable<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">14,468<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">13,757<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accrued compensation<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">42,647<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">47,577<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accrued expenses<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">15,535<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">13,074<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred revenue<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">80,382<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">75,590<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Operating lease liabilities<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,918<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">4,353<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Total current liabilities<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">154,950<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">154,351<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Other liabilities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred revenue, non-current<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">5,318<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">5,288<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Operating lease liabilities, non-current<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">4,700<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">2,839<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred income tax liabilities<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">33,801<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">33,201<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Other liabilities, non-current<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">279<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">287<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Total liabilities<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">199,048<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">195,966<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Commitments and contingencies<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Stockholders&#8217; equity<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Common stock<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">40<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">40<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Treasury stock<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(226,903<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(177,949<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Additional paid-in capital<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">741,544<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">722,737<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Retained earnings<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">449,167<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">429,438<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accumulated other comprehensive loss<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(1,688<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(373<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0Total stockholders\u2019 equity<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">962,160<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">973,893<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0 \u00a0\u00a0 \u00a0 \u00a0Total liabilities and stockholders\u2019 equity<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,161,208<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,169,859<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<table align=\"center\" style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"6\" style=\"width:99.9387%;text-align: center;vertical-align: middle\">\n            <strong>SPS COMMERCE, INC.<\/strong><br \/>\n            <br \/>\n            <strong>CONSOLIDATED STATEMENTS OF INCOME<\/strong><br \/>\n            <br \/>(Unaudited; in thousands, except per share amounts)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%\">\u00a0<\/td>\n<td colspan=\"5\" style=\"width:28.9216%\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"width:28.9216%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong><br \/>\n            <br \/>\n            <strong>March 31,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:71%;width:71.0172%;min-width:71%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:13%;width:12.9902%;min-width:13%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:13%;width:12.9902%;min-width:13%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Revenues<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">192,121<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">181,549<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cost of revenues<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">59,217<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">56,914<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Gross profit<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">132,904<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">124,635<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Operating expenses<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Sales and marketing<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">44,734<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">41,634<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Research and development<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">17,917<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">17,439<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">General and administrative<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">36,374<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">31,018<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Amortization of intangible assets<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">9,320<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">8,588<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 Total operating expenses<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">108,345<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">98,679<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Income from operations<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">24,559<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">25,956<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Other income, net<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,405<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">2,207<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Income before income taxes<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">25,964<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">28,163<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Income tax expense<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">6,235<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">5,967<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Net income<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">19,729<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">22,196<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;border-top: double black 3pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;border-top: double black 3pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Net income per share<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Basic<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">0.53<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">0.58<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Diluted<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">0.53<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">0.58<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Weighted average common shares used to compute net income per share<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Basic<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">37,379<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">37,990<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Diluted<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">37,442<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.9902%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">38,163<\/td>\n<\/tr>\n<\/table>\n<table align=\"center\" style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"8\" style=\"width:99.9387%;text-align: center;vertical-align: middle\">\n            <strong>SPS COMMERCE, INC.<\/strong><br \/>\n            <br \/>\n            <strong>CONSOLIDATED STATEMENTS OF CASH FLOWS<\/strong><br \/>\n            <br \/>(Unaudited; in thousands)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%\">\u00a0<\/td>\n<td colspan=\"7\" style=\"width:28.9216%\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"width:28.9216%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong><br \/>\n            <br \/>\n            <strong>March 31,<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:71%;width:71.0172%;min-width:71%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:12%;width:12.0098%;min-width:12%;border-bottom: solid black 1pt;padding-left: 0;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:12%;width:12.0098%;min-width:12%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-left: 0;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:0.980392%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cash flows from operating activities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Net income<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">19,729<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">22,196<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Reconciliation of net income to net cash provided by operating activities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Deferred income taxes<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">713<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(4,418<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Depreciation and amortization of property and equipment<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">5,834<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">4,957<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Amortization of intangible assets<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">9,320<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">8,588<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Provision for credit losses<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,973<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,822<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Stock-based compensation<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">18,073<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">13,867<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Other, net<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(242<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">168<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Changes in assets and liabilities, net of effects of acquisitions<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Accounts receivable<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,103<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(7,443<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Deferred costs<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,265<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(1,247<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Other assets and liabilities<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(715<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,174<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Accounts payable<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(792<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">1,677<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Accrued compensation<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(5,988<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(7,948<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Accrued expenses<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">893<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">3,868<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Deferred revenue<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">4,873<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">3,160<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">\u00a0 \u00a0Operating leases<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(410<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(438<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Net cash provided by operating activities<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">55,629<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">39,983<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cash flows from investing activities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Purchases of property and equipment<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(7,140<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(6,150<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Acquisition of business, net<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u2014<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(141,636<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Net cash used in investing activities<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(7,140<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(147,786<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cash flows from financing activities<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"width:13.9706%;border-top: solid black 1pt;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Repurchases of common stock<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(47,124<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(40,000<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Net proceeds from exercise of options to purchase common stock<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">743<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">635<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Net proceeds from employee stock purchase plan activity<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">520<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">411<\/td>\n<td style=\"width:0.980392%;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Net cash used in financing activities<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(45,861<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(38,954<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Effect of foreign currency exchange rate changes<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">288<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">661<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Net increase (decrease) in cash and cash equivalents<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">2,916<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">(146,096<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cash and cash equivalents at beginning of period<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">151,355<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:12.0098%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">241,017<\/td>\n<td style=\"width:0.980392%;border-bottom: solid black 1pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:71.0172%;vertical-align: bottom\">Cash and cash equivalents at end of period<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">154,271<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">$<\/td>\n<td style=\"width:12.0098%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: right;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">94,921<\/td>\n<td style=\"width:0.980392%;border-top: solid black 1pt;border-bottom: double black 3pt;text-align: left;vertical-align: middle;padding-left: 0;padding-right: 0;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"width:99.7551%;text-align: center;vertical-align: middle\">\n            <strong>SPS COMMERCE, INC.<\/strong><br \/>\n            <br \/>\n            <strong>NON-GAAP RECONCILIATIONS<\/strong><br \/>\n            <br \/>(Unaudited; in thousands, except Margin, Adjusted EBITDA Margin, and per share amounts)<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"7\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Adjusted EBITDA<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>March 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:59%;width:59%;min-width:59%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;border-top: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,729<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">22,196<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Income tax expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,235<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,967<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Depreciation and amortization of property and equipment<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,834<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,957<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Amortization of intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">9,320<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">8,588<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">18,073<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">13,867<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Realized gain from investments and foreign currency transactions<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(120<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(366<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Investment income<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(1,151<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(1,849<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Other<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">11<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1,013<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjusted EBITDA<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">57,931<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">54,373<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"7\" style=\"text-align: center;vertical-align: middle;vertical-align: middle\">\n            <strong>Adjusted EBITDA Margin<\/strong>\n          <\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" style=\"vertical-align: middle\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: middle\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td>\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: middle\">\n            <strong>March 31,<\/strong>\n          <\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:59%;width:59%;min-width:59%;vertical-align: middle\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: middle\">\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: middle\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: middle\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-top: solid black 1pt;border-bottom: solid black 1pt\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Revenue<\/td>\n<td>$<\/td>\n<td style=\"text-align: right;vertical-align: middle\">192,121<\/td>\n<td style=\"text-align: right;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">181,549<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Net income<\/td>\n<td style=\"border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: middle\">19,729<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: middle\">22,196<\/td>\n<td style=\"border-bottom: solid black 1pt\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Margin<\/td>\n<td style=\"border-bottom: double black 3pt\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">10<\/td>\n<td style=\"text-align: left;vertical-align: middle;border-bottom: double black 3pt\">%<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">12<\/td>\n<td style=\"border-bottom: double black 3pt\">%<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Adjusted EBITDA<\/td>\n<td style=\"border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: middle\">57,931<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: middle\">54,373<\/td>\n<td style=\"border-bottom: solid black 1pt\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle\">Adjusted EBITDA Margin<\/td>\n<td style=\"border-bottom: double black 3pt\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">30<\/td>\n<td style=\"text-align: left;vertical-align: middle;border-bottom: double black 3pt\">%<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: middle\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: middle\">30<\/td>\n<td style=\"border-bottom: double black 3pt\">%<\/td>\n<\/tr>\n<\/table>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"7\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Non-GAAP Income per Share<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"5\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>March 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:59%;width:59%;min-width:59%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;border-top: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2026<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:18%;width:18%;min-width:18%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;border-bottom: solid black 1pt;border-top: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,729<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">22,196<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">18,073<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">13,867<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Amortization of intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">9,320<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">8,588<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Realized gain from investments and foreign currency transactions<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(120<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(366<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Other<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">11<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,013<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Income tax effects of adjustments<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(5,879<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(7,285<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP income<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">41,134<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">38,013<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Shares used to compute net income and non-GAAP income per share<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Basic<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">37,379<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">37,990<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Diluted<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">37,442<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">38,163<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income per share, basic<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">0.53<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">0.58<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Non-GAAP adjustments to net income per share, basic<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.57<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.42<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP income per share, basic<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1.10<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1.00<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income per share, diluted<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">0.53<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">0.58<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 20.0px;vertical-align: bottom\">Non-GAAP adjustments to net income per share, diluted<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.57<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.42<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP income per share, diluted<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1.10<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1.00<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <em><br \/>\n          <br \/>The annual per share amounts may not cross-sum due to rounding.<\/em>\n      <\/p>\n<p>Contact:<br \/>Investor Relations<br \/>The Blueshirt Group<br \/>Irmina Blaszczyk <br \/>SPSC@blueshirtgroup.com<\/p>\n<p>      <img decoding=\"async\" alt=\"\" class=\"__GNW8366DE3E__IMG\" src=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\" \/><br \/>\n      <br \/>\n      <img decoding=\"async\" alt=\"\" src=\"https:\/\/ml.globenewswire.com\/media\/Y2MyMzE5OTEtYzI1Ni00NWRhLWI5OGYtMzkwMjUyNjUzNTg3LTEwMjc4MjQtMjAyNi0wNC0zMC1lbg==\/tiny\/SPS-Commerce-Inc-.png\" \/>\n    <\/div>\n<div class=\"mw_contactinfo\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>First quarter 2026 revenue grew 6% and recurring revenue grew 7% from the first quarter of 2025 MINNEAPOLIS, April 30, 2026 (GLOBE NEWSWIRE) &#8212; SPS Commerce, Inc. (NASDAQ: SPSC), the leading intelligent supply chain network, today announced financial results for the first quarter ended March 31, 2026. Financial Highlights First Quarter 2026 Financial Highlights Revenue was $192.1 million in the first quarter of 2026, compared to $181.5 million in the first quarter of 2025, reflecting 6% growth. Recurring revenue grew 7% from the first quarter of 2025. Net income was $19.7 million or $0.53 per diluted share, compared to net income of $22.2 million or $0.58 per diluted share in the first quarter of 2025. Non-GAAP income per diluted share &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;SPS Commerce Reports First Quarter 2026 Financial Results&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-956858","post","type-post","status-publish","format-standard","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk\" \/>\n<meta property=\"og:description\" content=\"First quarter 2026 revenue grew 6% and recurring revenue grew 7% from the first quarter of 2025 MINNEAPOLIS, April 30, 2026 (GLOBE NEWSWIRE) &#8212; SPS Commerce, Inc. (NASDAQ: SPSC), the leading intelligent supply chain network, today announced financial results for the first quarter ended March 31, 2026. Financial Highlights First Quarter 2026 Financial Highlights Revenue was $192.1 million in the first quarter of 2026, compared to $181.5 million in the first quarter of 2025, reflecting 6% growth. Recurring revenue grew 7% from the first quarter of 2025. Net income was $19.7 million or $0.53 per diluted share, compared to net income of $22.2 million or $0.58 per diluted share in the first quarter of 2025. Non-GAAP income per diluted share &hellip; Continue reading &quot;SPS Commerce Reports First Quarter 2026 Financial Results&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/\" \/>\n<meta property=\"og:site_name\" content=\"Market Newsdesk\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-30T20:52:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\" \/>\n<meta name=\"author\" content=\"Newsdesk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Newsdesk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/\"},\"author\":{\"name\":\"Newsdesk\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"headline\":\"SPS Commerce Reports First Quarter 2026 Financial Results\",\"datePublished\":\"2026-04-30T20:52:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/\"},\"wordCount\":2050,\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/\",\"name\":\"SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\",\"datePublished\":\"2026-04-30T20:52:11+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\",\"contentUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/sps-commerce-reports-first-quarter-2026-financial-results\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SPS Commerce Reports First Quarter 2026 Financial Results\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\",\"name\":\"Market Newsdesk\",\"description\":\"Latest Business News in Real Time\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\",\"name\":\"Newsdesk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"caption\":\"Newsdesk\"},\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/author\\\/newsdesk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/","og_locale":"en_US","og_type":"article","og_title":"SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk","og_description":"First quarter 2026 revenue grew 6% and recurring revenue grew 7% from the first quarter of 2025 MINNEAPOLIS, April 30, 2026 (GLOBE NEWSWIRE) &#8212; SPS Commerce, Inc. (NASDAQ: SPSC), the leading intelligent supply chain network, today announced financial results for the first quarter ended March 31, 2026. Financial Highlights First Quarter 2026 Financial Highlights Revenue was $192.1 million in the first quarter of 2026, compared to $181.5 million in the first quarter of 2025, reflecting 6% growth. Recurring revenue grew 7% from the first quarter of 2025. Net income was $19.7 million or $0.53 per diluted share, compared to net income of $22.2 million or $0.58 per diluted share in the first quarter of 2025. Non-GAAP income per diluted share &hellip; Continue reading \"SPS Commerce Reports First Quarter 2026 Financial Results\"","og_url":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/","og_site_name":"Market Newsdesk","article_published_time":"2026-04-30T20:52:11+00:00","og_image":[{"url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=","type":"","width":"","height":""}],"author":"Newsdesk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Newsdesk","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#article","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/"},"author":{"name":"Newsdesk","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"headline":"SPS Commerce Reports First Quarter 2026 Financial Results","datePublished":"2026-04-30T20:52:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/"},"wordCount":2050,"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/","url":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/","name":"SPS Commerce Reports First Quarter 2026 Financial Results - Market Newsdesk","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#primaryimage"},"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=","datePublished":"2026-04-30T20:52:11+00:00","author":{"@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"breadcrumb":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#primaryimage","url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE=","contentUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTcxMDg5NiM3NTc1MDYzIzIwMTYyNTE="},{"@type":"BreadcrumbList","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/sps-commerce-reports-first-quarter-2026-financial-results\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.marketnewsdesk.com\/"},{"@type":"ListItem","position":2,"name":"SPS Commerce Reports First Quarter 2026 Financial Results"}]},{"@type":"WebSite","@id":"https:\/\/www.marketnewsdesk.com\/#website","url":"https:\/\/www.marketnewsdesk.com\/","name":"Market Newsdesk","description":"Latest Business News in Real Time","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.marketnewsdesk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979","name":"Newsdesk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","caption":"Newsdesk"},"url":"https:\/\/www.marketnewsdesk.com\/index.php\/author\/newsdesk\/"}]}},"_links":{"self":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/956858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/comments?post=956858"}],"version-history":[{"count":0,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/956858\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/media?parent=956858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/categories?post=956858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/tags?post=956858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}