<SEC-DOCUMENT>0001092699-24-000072.txt : 20241024
<SEC-HEADER>0001092699-24-000072.hdr.sgml : 20241024
<ACCEPTANCE-DATETIME>20241024161316
ACCESSION NUMBER:		0001092699-24-000072
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		15
CONFORMED PERIOD OF REPORT:	20241024
ITEM INFORMATION:		Results of Operations and Financial Condition
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20241024
DATE AS OF CHANGE:		20241024

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			SPS COMMERCE INC
		CENTRAL INDEX KEY:			0001092699
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-PREPACKAGED SOFTWARE [7372]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				411593154
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34702
		FILM NUMBER:		241392785

	BUSINESS ADDRESS:	
		STREET 1:		333 SOUTH SEVENTH STREET
		STREET 2:		SUITE 1000
		CITY:			MINNEAPOLIS
		STATE:			MN
		ZIP:			55402
		BUSINESS PHONE:		612-435-9400

	MAIL ADDRESS:	
		STREET 1:		333 SOUTH SEVENTH STREET
		STREET 2:		SUITE 1000
		CITY:			MINNEAPOLIS
		STATE:			MN
		ZIP:			55402
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>spsc-20241024.htm
<DESCRIPTION>8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:63a8a388-f73b-4916-b04c-b147ce45cea9,g:ca1ecc20-8885-4d0b-9b09-37b18e215da3,d:0cdde11052b24c308c8a23968a4f7884-->
<html xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>spsc-20241024</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" format="ixt:fixed-false" id="f-22">FALSE</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-23">0001092699</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-24">333 South Seventh Street</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine2" id="f-25">Suite 1000</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-26">Minneapolis</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-27">Minnesota</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-28">Nasdaq Global Market</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="spsc-20241024.xsd"/></ix:references><ix:resources><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001092699</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-24</xbrli:startDate><xbrli:endDate>2024-10-24</xbrli:endDate></xbrli:period></xbrli:context></ix:resources></ix:header></div><div id="i0cdde11052b24c308c8a23968a4f7884_1"></div><div style="min-height:47.52pt;width:100%"><div style="text-align:right"><span><br/></span></div></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:100%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:100%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="margin-bottom:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:100%">Washington, D.C. 20549</span></div><div style="margin-bottom:12pt;margin-top:12pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:100%">FORM <ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">8-K</ix:nonNumeric></span></div><div style="margin-bottom:6pt;margin-top:6pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">CURRENT REPORT</span></div><div style="margin-bottom:12pt;margin-top:6pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">Pursuant to Section 13 or 15(d) of<br/>the Securities Exchange Act of 1934</span></div><div style="margin-top:6pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-2">October 24, 2024</ix:nonNumeric></span></div><div style="margin-bottom:12pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date of report (Date of earliest event reported)</span></div><div style="margin-top:6pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-3">SPS COMMERCE, INC.</ix:nonNumeric>&#160;</span></div><div style="margin-bottom:12pt;padding-left:18pt;padding-right:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Exact Name of Registrant as Specified in its Charter)</span></div><div style="padding-left:18pt;padding-right:18pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:31.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.601%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:32.233%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.601%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:31.433%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-4">Delaware</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-5">001-34702</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-6">41-2015127</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(State of Incorporation)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Commission File Number)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(I.R.S. Employer Identification No.)</span></td></tr></table><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:77.460%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.240%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.900%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-7">333 South Seventh Street</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine2" id="f-8">Suite 1000</ix:nonNumeric></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-9">Minneapolis</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-10">Minnesota</ix:nonNumeric></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-11">55402</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Address of Principal Executive Offices)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Zip Code)</span></td></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">(<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-12">612</ix:nonNumeric>) <ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-13">435-9400</ix:nonNumeric>&#160;</span></div><div style="margin-bottom:12pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Registrant's Telephone Number, Including Area Code)</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Not Applicable </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Former Name or Former Address, if Changed Since Last Report)</span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions (see General Instruction A.2. below):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:1.944%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:95.856%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:WrittenCommunications" format="ixt-sec:boolballotbox" id="f-14">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:SolicitingMaterial" format="ixt-sec:boolballotbox" id="f-15">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:PreCommencementTenderOffer" format="ixt-sec:boolballotbox" id="f-16">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:PreCommencementIssuerTenderOffer" format="ixt-sec:boolballotbox" id="f-17">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))</span></td></tr></table></div><div style="padding-left:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Securities registered pursuant to Section 12(b) of the Act:</span></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:38.002%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.976%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:36.722%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Title of each class</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Trading Symbol(s)</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Name of each exchange on which registered</span></td></tr><tr style="height:14pt"><td colspan="3" rowspan="2" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;text-indent:-36pt;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-18">Common stock, par value $0.001 per share</ix:nonNumeric></span></td><td colspan="3" rowspan="2" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-19">SPSC</ix:nonNumeric></span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Nasdaq Stock Market LLC</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-20">Nasdaq Global Market</ix:nonNumeric>)</span></div></td></tr></table></div><div style="padding-left:36pt"><span><br/></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (&#167;230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (&#167;240.12b-2 of this chapter).</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:right"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Emerging growth company </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="f-21">&#9744;</ix:nonNumeric></span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act</span></div><div style="margin-bottom:6pt;margin-top:6pt;text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#9744;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></div><div style="height:47.52pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i0cdde11052b24c308c8a23968a4f7884_7"></div><hr style="page-break-after:always"/><div style="min-height:47.52pt;width:100%"><div><span><br/></span></div></div><div style="-sec-extract:summary;padding-left:36pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Item 2.02. Results of Operations and Financial Condition.</span></div><div><span><br/></span></div><div style="margin-bottom:6pt;padding-left:36pt;text-indent:36pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 24, 2024, we issued a press release disclosing our results of operations and financial condition for our three and nine months ended September&#160;30, 2024. In accordance with General Instruction B.2 of Form 8-K, the information in this Current Report on Form 8-K, including Exhibit 99, shall not be deemed to be "filed" for purposes of Section 18 of the Securities Exchange Act of 1934 or otherwise subject to the liability of that section, and shall not be incorporated by reference into any registration statement or other document filed under the Securities Act of 1933 or the Securities Exchange Act of 1934, except as shall be expressly set forth by specific reference in that filing.</span></div><div><span><br/></span></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Item 9.01. Financial Statements and Exhibits.</span></div><div style="margin-bottom:6pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Exhibits</span></div><div style="padding-left:36pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.559%"><tr><td style="width:1.0%"/><td style="width:11.600%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.200%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit No.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#3051f2;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#3051f2;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="er_q324.htm">99</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#3051f2;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#3051f2;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="er_q324.htm">Press Release dated October 24, 2024</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">104</span></td><td colspan="3" style="padding:2px 1pt;text-align:justify;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cover Page Interactive Data File (embedded within the Inline XBRL document)</span></td></tr></table></div><div style="padding-left:18pt;padding-right:18pt;text-align:center"><span><br/></span></div><div style="padding-left:18pt;padding-right:18pt;text-align:center;text-indent:36pt"><span><br/></span></div><div style="height:47.52pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i0cdde11052b24c308c8a23968a4f7884_10"></div><hr style="page-break-after:always"/><div style="min-height:47.52pt;width:100%"><div><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">SIGNATURES</span></div><div style="text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned hereunto duly authorized.</span></div><div style="padding-left:36pt;text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:92.857%"><tr><td style="width:1.0%"/><td style="width:46.656%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.226%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:46.818%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">SPS COMMERCE, INC.</span></div></td></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date: October 24, 2024</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By:</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ KIMBERLY NELSON</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:0.75pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Kimberly Nelson</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Executive Vice President and Chief Financial Officer</span></td></tr></table></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:3pt;text-align:justify"><span><br/></span></div><div style="height:47.52pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99
<SEQUENCE>2
<FILENAME>er_q324.htm
<DESCRIPTION>EX-99
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i8677a52996a947249824f4a213097a49_1"></div><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div><img alt="spscommercelogoa.jpg" src="spscommercelogoa.jpg" style="height:69px;margin-bottom:5pt;vertical-align:text-bottom;width:240px"></div><div style="margin-bottom:0.08pt;text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Exhibit 99</font></div><div style="margin-top:0.1pt;text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:100%">Contact&#58;</font></div><div style="margin-bottom:0.08pt;text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">Investor Relations</font></div><div style="text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">The Blueshirt Group</font></div><div style="text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">Irmina Blaszczyk &#38; Lisa Laukkanen</font></div><div style="text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">SPSC&#64;blueshirtgroup.com</font></div><div style="text-align:right"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">415-217-4962</font></div><div style="margin-bottom:0.08pt;text-align:right"><font><br></font></div><div id="i8677a52996a947249824f4a213097a49_4"></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-style:italic;font-weight:700;line-height:174%">SPS Commerce Reports Third Quarter 2024 Financial Results</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:174%">Company delivers 95th consecutive quarter of topline growth</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:174%">Revenue and recurring revenue growth of 21% year-over-year</font></div><div><font><br></font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">MINNEAPOLIS, October&#160;24, 2024 (GLOBE NEWSWIRE) -- SPS Commerce, Inc. (NASDAQ&#58; SPSC), a leader in retail supply chain cloud services, today announced financial results for the third</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:125%"> </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">quarter ended September&#160;30, 2024.</font></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">Financial Highlights</font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Third Quarter 2024 Financial Highlights</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Revenue was $163.7 million in the third quarter of 2024, compared to $135.7 million in the third quarter of 2023, reflecting 21% growth. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Recurring revenue grew 21% from the third quarter of 2023.</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Net income was $23.5 million or $0.62 per diluted share, compared to net income of $16.8 million or $0.45 per diluted share in the third quarter of 2023.</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Non-GAAP income per diluted share was $0.92, compared to non-GAAP income per diluted share of $0.75 in the third quarter of 2023. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Adjusted EBITDA for the third quarter of 2024 increased 19% to $48.4 million compared to the third quarter of 2023.</font></div><div id="i8677a52996a947249824f4a213097a49_7"></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:115%">&#8220;The evolving dynamics of the retail industry continue to drive digital transformation.  SPS Commerce has been a trusted partner to thousands of retailers, suppliers, logistics providers, and distributors over the years and we remain committed to our vision to be the world&#8217;s retail network,&#8221; said Chad Collins, CEO of SPS Commerce.  &#8220;Our customers continue to prioritize supply chain resilience and recognize the value we bring to the table as they strive for efficient collaboration with their trading partners.&#8221;</font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:115%">&#8220;SPS Commerce delivered strong third quarter performance and the 95th consecutive quarter of revenue growth,&#8221; said Kim Nelson, CFO of SPS Commerce.  &#8220;We remain committed to a balanced growth approach as we continue to support our customers with a comprehensive product portfolio that positions them to successfully navigate evolving omnichannel dynamics and overcome increasing supply chain complexity.&#8221;</font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_13"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">Guidance</font></div><div><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Fourth Quarter </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">2024</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%"> Guidance</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Revenue is expected to be in the range of $168.5 million to $169.5 million, representing </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">16% to 17% year-over-year growth.  </font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%"> </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Net income per diluted share is expected to be in the range of $0.46 to $0.47, with fully diluted weighted average shares outstanding of 38.1 million shares. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Non-GAAP income per diluted share is expected to be in the range of $0.83 to $0.84.</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Adjusted EBITDA is expected to be in the range of $48.0 million to $48.7 million.</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Non-cash, share-based compensation expense is expected to be $12.8 million, depreciation expense is expected to be $5.1 million, and amortization expense is expected to be $7.2 million.</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Fiscal Year </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">2024 </font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Guidance</font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Revenue is expected to be in the range of $635.4 million to $636.4 million, representing </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">18%</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%"> to </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">19%</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:14pt;font-weight:400;line-height:125%"> </font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">growth over 2023. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Net income per diluted share is expected to be in the range of $2.03 to $2.04, with fully diluted weighted average shares outstanding of 37.9 million shares. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Non-GAAP income per diluted share is expected to be in the range of $3.41 to $3.42. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Adjusted EBITDA is expected to be in the range of $185.0 million to $185.7 million, representing 17% to 18% growth over 2023. </font></div><div style="padding-left:36pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%;padding-left:12.53pt">Non-cash, share-based compensation expense is expected to be $55.1 million, depreciation expense is expected to be $19.1 million, and amortization expense is expected to be $22.8 million. </font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%">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.</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div id="i8677a52996a947249824f4a213097a49_16"></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">Quarterly Conference Call</font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">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&#58;30 p.m. CT start time. Please ask to join the SPS Commerce Q3 2024 conference call. </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:12pt;font-weight:400;line-height:112%"> </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">A live webcast of the call will also be available at </font><font style="color:#0000ff;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">http&#58;&#47;&#47;investors.spscommerce.com</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%"> under the Events and Presentations menu.</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:12pt;font-weight:400;line-height:112%">  </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">The replay will also be available on our website at </font><font style="color:#0000ff;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">http&#58;&#47;&#47;investors.spscommerce.com</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:112%">. </font></div><div><font><br></font></div><div id="i8677a52996a947249824f4a213097a49_19"></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">About SPS Commerce</font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">SPS Commerce is the world&#8217;s leading retail 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. To date, more than 120,000 companies in retail, grocery, distribution, supply, and logistics have chosen SPS as their retail network. SPS has achieved 95 consecutive quarters of revenue growth and is headquartered in Minneapolis. For additional information, contact SPS at 866-245-8100 or visit www.spscommerce.com. </font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">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.&#160;</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">SPS-F</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_22"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">Use of Non-GAAP Financial Measures</font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%">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.</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%">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.</font></div><div><font><br></font></div><div style="margin-bottom:0.08pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%">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. </font></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Adjusted EBITDA Measures&#58;</font></div><div style="margin-bottom:8pt;margin-top:8pt;padding-left:36pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Adjusted EBITDA</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> consists of net income adjusted for income tax expense, depreciation and amortization expense, stock-based compensation expense, realized gain or loss from foreign currency on cash and investments held, investment income, and other adjustments as necessary for a fair presentation. Other adjustments for the three and nine months ended September 30, 2024 included the expense impacts from disposals of certain capitalized internally developed software and one-time acquisition-related insurance costs. Other adjustments for the three and nine months ended September 30, 2023 included the expense impact from acquisition-related employee severance costs, and for the nine months ended September 30, 2023, other adjustments also included the expense impact from disposals of certain capitalized internally developed software. Net income is the comparable GAAP measure of financial performance. </font></div><div style="margin-bottom:8pt;margin-top:12pt;padding-left:36pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Adjusted EBITDA Margin</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> consists of Adjusted EBITDA divided by revenue. Margin, the comparable GAAP measure of financial performance, consists of net income divided by revenue. </font></div><div style="margin-bottom:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Non-GAAP Income Per Share Measure&#58;</font></div><div style="margin-top:8pt;padding-left:36pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Non-GAAP income per share</font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> consists of net income adjusted for stock-based compensation expense, amortization expense related to intangible assets, realized gain or loss from foreign currency on cash and investments held, other adjustments as necessary for a fair presentation, including for the three and nine months ended September 30, 2024 the expense impacts from disposals of certain capitalized internally developed software and one-time acquisition-related insurance costs, for the three and nine months ended September 30, 2023 the expense impact from acquisition-related employee severance costs, and for the nine months ended September 30, 2023 the expense impact from disposals of certain capitalized internally developed software, 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 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. </font></div><div style="margin-bottom:0.08pt;margin-top:6pt;padding-left:36pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:120%">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.</font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_25"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:8pt;margin-top:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:700;line-height:125%;text-decoration:underline">Forward-Looking Statements</font></div><div style="margin-bottom:8pt"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">This press release may contain forward-looking statements, including information about management's view of SPS Commerce'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 perform</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">ance for the fourth quarter and full year of </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">2024</font><font style="background-color:#ffffff;color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">, 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 </font><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:125%">factors and others are included in documents SPS Commerce files with the Securities and Exchange Commission, including but not limited to, SPS Commerce's Annual Report on Form 10-K for the year ended December&#160;31, 2023, 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'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. </font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_28"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SPS COMMERCE, INC.</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CONDENSED CONSOLIDATED BALANCE SHEETS</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands, except shares)</font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:70.537%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.791%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:700;line-height:125%">September 30,<br>2024</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:700;line-height:125%">December 31,<br>2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:700;line-height:125%">ASSETS</font></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(unaudited) </font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Current assets</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Cash and cash equivalents</font></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">198,842&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">219,081&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Short-term investments</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">6,931&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">56,359&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accounts receivable</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">60,044&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">50,160&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Allowance for credit losses</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(4,474)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(3,320)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accounts receivable, net</font></td><td colspan="2" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:114%">55,570&#160;</font></td><td style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:114%">46,840&#160;</font></td><td style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred costs</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">64,665&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">62,403&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Other assets</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">18,639&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">16,758&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total current assets</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">344,647&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">401,441&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Property and equipment, net</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">36,148&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">36,043&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Operating lease right-of-use assets</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,412&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">7,862&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Goodwill</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">423,508&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">249,176&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Intangible assets, net</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">168,131&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">107,344&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Other assets</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred costs, non-current</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">20,802&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">20,347&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred income tax assets</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">412&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">505&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Other assets, non-current</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">1,240&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">1,126&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total assets</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">1,003,300&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">823,844&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:700;line-height:125%">LIABILITIES AND STOCKHOLDERS&#8217; EQUITY</font></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Current liabilities</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accounts payable</font></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,107&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">7,420&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accrued compensation</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">46,010&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">41,588&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accrued expenses</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,968&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,014&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred revenue</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">78,883&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">69,187&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Operating lease liabilities</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">4,363&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">4,460&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total current liabilities</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">146,331&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">130,669&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Other liabilities</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred revenue, non-current</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">6,550&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">6,930&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Operating lease liabilities, non-current</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,807&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">9,569&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Deferred income tax liabilities</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">11,607&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">8,972&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:114%">Other liabilities, non-current</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">640&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">229&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total liabilities</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">173,935&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">156,369&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Commitments and contingencies</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Stockholders' equity</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Common stock</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">39&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">39&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Treasury stock</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(99,748)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(128,892)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Additional paid-in capital</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">611,719&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">537,061&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Retained earnings</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">318,540&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">259,045&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Accumulated other comprehensive gain (loss)</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">(1,185)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">222&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total stockholders&#8217; equity</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">829,365&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">667,475&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">Total liabilities and stockholders&#8217; equity</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">1,003,300&#160;</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8.5pt;font-weight:400;line-height:125%">823,844&#160;</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font><br></font></div><div style="height:40.5pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_31"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SPS COMMERCE, INC.</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CONDENSED CONSOLIDATED STATEMENTS OF INCOME</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(Unaudited&#59; in thousands, except per share amounts)</font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:41.168%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.891%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.891%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.891%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.389%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.892%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Three Months Ended<br>September 30,</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Nine Months Ended<br>September 30,</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Revenues</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">163,686&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">135,661&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">466,858&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">391,945&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cost of revenues</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">51,624&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">45,521&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">155,129&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">133,029&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Gross profit</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">112,062&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">90,140&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">311,729&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">258,916&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Operating expenses</font></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Sales and marketing</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,577&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">30,289&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">109,700&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">89,722&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Research and development</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">15,292&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">13,558&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">45,667&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">39,438&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">General and administrative</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">27,152&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">21,906&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">76,575&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">64,275&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Amortization of intangible assets</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">6,470&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">3,788&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">15,648&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">11,118&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Total operating expenses</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">86,491&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">69,541&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">247,590&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">204,553&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Income from operations</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">25,571&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">20,599&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">64,139&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">54,363&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Other income, net</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">3,778&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1,702&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">10,966&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">4,859&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Income before income taxes</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">29,349&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">22,301&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">75,105&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">59,222&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Income tax expense</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">5,889&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">5,459&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">15,610&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">12,409&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net income</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">23,460&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">16,842&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">59,495&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">46,813&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net income per share</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Basic</font></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">0.63&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">0.46&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1.60&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1.28&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Diluted</font></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">0.62&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">0.45&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1.57&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1.25&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Weighted average common shares used to compute net income per share</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Basic</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,447&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">36,728&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,192&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">36,584&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Diluted</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,996&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,584&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,785&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">37,417&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div id="i8677a52996a947249824f4a213097a49_34"></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SPS COMMERCE, INC.</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(Unaudited&#59; in thousands)</font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.637%"><tr><td style="width:1.0%"></td><td style="width:70.155%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.969%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.405%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.971%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Nine Months Ended<br>September 30,</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cash flows from operating activities</font></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net income</font></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">59,495&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">46,813&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Reconciliation of net income to net cash provided by operating activities</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Deferred income taxes</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(9,918)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(11,906)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Depreciation and amortization of property and equipment</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">14,010&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">13,964&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Amortization of intangible assets</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">15,648&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">11,118&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Provision for credit losses</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">6,239&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">4,004&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Stock-based compensation</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">42,264&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">36,097&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Other, net</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(925)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">1,711&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Changes in assets and liabilities, net of effects of acquisitions</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Accounts receivable</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(11,456)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(8,800)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Deferred costs</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(2,240)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(7,543)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Other assets and liabilities</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(2,258)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">2,814&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Accounts payable</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">665&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(5,289)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Accrued compensation</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">458&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">8,073&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Accrued expenses</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">842&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(169)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Deferred revenue</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">5,424&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">10,042&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Operating leases</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(1,412)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(1,417)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net cash provided by operating activities</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">116,836&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">99,512&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cash flows from investing activities</font></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Purchases of property and equipment</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(13,832)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(15,467)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Purchases of investments</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(85,759)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(102,763)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Maturities of investments</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">136,765&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">95,000&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Acquisition of businesses, net</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(147,401)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(70,218)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net cash used in investing activities</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(110,227)</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(93,448)</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cash flows from financing activities</font></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Repurchases of common stock</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(37,567)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">&#8212;&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net proceeds from exercise of options to purchase common stock</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">4,198&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">5,524&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net proceeds from employee stock purchase plan activity</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">5,672&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">4,481&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net cash provided by (used in) financing activities</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(27,697)</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">10,005&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Effect of foreign currency exchange rate changes</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">849&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(260)</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Net increase (decrease) in cash and cash equivalents</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">(20,239)</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">15,809&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cash and cash equivalents at beginning of period</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">219,081&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">162,893&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">Cash and cash equivalents at end of period</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">198,842&#160;</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:10pt;font-weight:400;line-height:125%">178,702&#160;</font></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div><div id="i8677a52996a947249824f4a213097a49_37"></div><hr style="page-break-after:always"><div style="min-height:36pt;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div><div style="margin-bottom:0.08pt;margin-top:12pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:120%">SPS COMMERCE, INC.</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:120%">NON-GAAP RECONCILIATION</font></div><div style="margin-bottom:0.08pt;text-align:center"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(Unaudited&#59; in thousands, except Margin, Adjusted EBITDA Margin, and per share amounts)</font></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.830%"><tr><td style="width:1.0%"></td><td style="width:45.645%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.775%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="background-color:#dbdbdb;border-bottom:1pt solid #000;border-left:1pt solid #000;border-right:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Adjusted EBITDA</font></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Three Months Ended<br>September 30,</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Nine Months Ended<br>September 30,</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Net income</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">23,460&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">16,842&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">59,495&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">46,813&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Income tax expense</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">5,889&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">5,459&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">15,610&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">12,409&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Depreciation and amortization of property and equipment</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">4,633&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">4,675&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">14,010&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">13,964&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Amortization of intangible assets</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">6,470&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">3,788&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">15,648&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">11,118&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Stock-based compensation expense</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">10,752&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">11,436&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">42,264&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">36,097&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Realized gain from foreign currency on cash and investments held</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(1,077)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(98)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(2,636)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(525)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Investment income</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(2,704)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(2,635)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(8,377)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(5,372)</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Other</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">978&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1,036&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">978&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1,170&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Adjusted EBITDA</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">48,401&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">40,503&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">136,992&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">115,674&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.830%"><tr><td style="width:1.0%"></td><td style="width:45.645%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.775%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="background-color:#dbdbdb;border-bottom:1pt solid #000;border-left:1pt solid #000;border-right:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Adjusted EBITDA Margin</font></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Three Months Ended<br>September 30,</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Six Months Ended<br>June 30,</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Revenue</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">163,686</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">135,661</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">466,858</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">391,945</font></td></tr><tr style="height:8pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Net income</font></td><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">23,460</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">16,842</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">59,495</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">46,813</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Margin</font></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">14&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">12&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">13&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">12&#160;</font></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td></tr><tr style="height:8pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Adjusted EBITDA</font></td><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">48,401</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">40,503</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">136,992</font></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">115,674</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Adjusted EBITDA Margin</font></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">30&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">30&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">29&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">30&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">%</font></td></tr></table></div><div style="margin-bottom:0.08pt;text-align:center"><font><br></font></div><div style="margin-bottom:0.08pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.830%"><tr><td style="width:1.0%"></td><td style="width:45.645%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.769%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.391%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.775%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="background-color:#dbdbdb;border-bottom:1pt solid #000;border-left:1pt solid #000;border-right:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Non-GAAP Income per Share</font></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Three Months Ended<br>September 30,</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="9" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">Nine Months Ended<br>September 30,</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:700;line-height:125%">2023</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Net income</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">23,460&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">16,842&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">59,495&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">46,813&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Stock-based compensation expense</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">10,752&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">11,436&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">42,264&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">36,097&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Amortization of intangible assets</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">6,470&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">3,788&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">15,648&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">11,118&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Realized gain from foreign currency on cash and investments held</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(1,077)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(98)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(2,636)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(525)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Other</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">978&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1,036&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">978&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1,170&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Income tax effects of adjustments</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(5,514)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(4,981)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(18,134)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">(16,089)</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Non-GAAP income</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">35,069&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">28,023&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">97,615&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">78,584&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Shares used to compute net income and non-GAAP income per share</font></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Basic</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,447&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">36,728&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,192&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">36,584&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Diluted</font></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,996&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,584&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,785&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">37,417&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Net income per share, basic</font></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.63&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.46&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.60&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.28&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Non-GAAP adjustments to net income per share, basic</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.31&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.30&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.02&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.87&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Non-GAAP income per share, basic</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.94&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.76&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">2.62&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">2.15&#160;</font></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Net income per share, diluted</font></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.62&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.45&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.57&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.25&#160;</font></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 16pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Non-GAAP adjustments to net income per share, diluted</font></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.30&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.30&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">1.01&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.85&#160;</font></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">Non-GAAP income per share, diluted</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.92&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">0.75&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">2.58&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">$</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Calibri',sans-serif;font-size:8pt;font-weight:400;line-height:125%">2.10&#160;</font></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:0.08pt"><font><br></font></div><div style="height:31.5pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>3
<FILENAME>spsc-20241024.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:63a8a388-f73b-4916-b04c-b147ce45cea9,g:ca1ecc20-8885-4d0b-9b09-37b18e215da3-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:spsc="http://www.spscommerce.com/20241024" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.spscommerce.com/20241024">
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="spsc-20241024_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="spsc-20241024_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="Cover" roleURI="http://www.spscommerce.com/role/Cover">
        <link:definition>0000001 - Document - Cover</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>4
<FILENAME>spsc-20241024_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:63a8a388-f73b-4916-b04c-b147ce45cea9,g:ca1ecc20-8885-4d0b-9b09-37b18e215da3-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_dei_SecurityExchangeName_21b3e1c7-ea2d-4d19-9152-4fa248993345_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12bTitle_0de62161-d27b-4d8c-b661-1b3bb5a263d4_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_WrittenCommunications_047030bd-ab48-4e45-8bb0-7a268edcadea_terseLabel_en-US" xlink:label="lab_dei_WrittenCommunications" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Written Communications</link:label>
    <link:label id="lab_dei_WrittenCommunications_label_en-US" xlink:label="lab_dei_WrittenCommunications" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Written Communications</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_WrittenCommunications" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_WrittenCommunications"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_WrittenCommunications" xlink:to="lab_dei_WrittenCommunications" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_c27abc72-13cb-44e9-943c-43ef17589605_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_28263aa9-9cd1-44e4-8b95-9ae7b6dd5dc9_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_9ea13bf9-2d57-466f-b256-80ce76904505_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_a8cf2642-09fc-4a1f-9f6e-9004db456647_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_PreCommencementIssuerTenderOffer_0101f42f-8eb3-471a-8a48-08bbc05869d9_terseLabel_en-US" xlink:label="lab_dei_PreCommencementIssuerTenderOffer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
    <link:label id="lab_dei_PreCommencementIssuerTenderOffer_label_en-US" xlink:label="lab_dei_PreCommencementIssuerTenderOffer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementIssuerTenderOffer" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementIssuerTenderOffer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_PreCommencementIssuerTenderOffer" xlink:to="lab_dei_PreCommencementIssuerTenderOffer" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_b000889d-cef3-4aa1-8a5c-58e0c1d0b807_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_8836a7d0-0378-40ab-bf8c-3b65aa23a682_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_PreCommencementTenderOffer_37142668-9afc-4703-bf6f-f5531a6a7537_terseLabel_en-US" xlink:label="lab_dei_PreCommencementTenderOffer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
    <link:label id="lab_dei_PreCommencementTenderOffer_label_en-US" xlink:label="lab_dei_PreCommencementTenderOffer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementTenderOffer" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementTenderOffer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_PreCommencementTenderOffer" xlink:to="lab_dei_PreCommencementTenderOffer" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SolicitingMaterial_19393102-ee7c-4ba2-b073-28f406135b34_terseLabel_en-US" xlink:label="lab_dei_SolicitingMaterial" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Soliciting Material</link:label>
    <link:label id="lab_dei_SolicitingMaterial_label_en-US" xlink:label="lab_dei_SolicitingMaterial" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Soliciting Material</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SolicitingMaterial" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SolicitingMaterial"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SolicitingMaterial" xlink:to="lab_dei_SolicitingMaterial" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_1af61160-6b03-44cb-a7ac-dfcae9ddd6be_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_e8587246-e496-423d-aad4-160cfa451b9a_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_7432e93c-7d4c-4263-9f6a-48035ee513dd_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_a969d57d-20c0-4a55-9aa6-d5ef4332b73a_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_b187485d-7cdf-456f-b29e-2a0c1031ac8f_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_b6cead4d-68f9-4696-aa04-f8d304e5fbec_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_13499323-c44b-41ea-8087-a45bce0cd466_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_ebc9ff34-c7dc-4586-9e37-ee711f22dbec_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_f1bd231b-63be-46f0-8dbf-1704b394e0d8_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine2_a098c4bc-35d4-41c4-b492-db0f14d674fc_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line Two</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine2_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine2" xlink:to="lab_dei_EntityAddressAddressLine2" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_31478a16-6f0c-4377-b500-311fef12a2c0_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>5
<FILENAME>spsc-20241024_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:63a8a388-f73b-4916-b04c-b147ce45cea9,g:ca1ecc20-8885-4d0b-9b09-37b18e215da3-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.spscommerce.com/role/Cover" xlink:type="simple" xlink:href="spsc-20241024.xsd#Cover"/>
  <link:presentationLink xlink:role="http://www.spscommerce.com/role/Cover" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_80190aa7-2c29-41ec-a79d-17806900a1bd" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_DocumentType_80190aa7-2c29-41ec-a79d-17806900a1bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_b756af35-df64-4b45-b93d-d267454adf6a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_DocumentPeriodEndDate_b756af35-df64-4b45-b93d-d267454adf6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_436963d5-e5aa-4ce9-82bd-0828519dd2ac" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityRegistrantName_436963d5-e5aa-4ce9-82bd-0828519dd2ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_0078cf4a-0674-4452-9228-c88ffda0cc34" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityIncorporationStateCountryCode_0078cf4a-0674-4452-9228-c88ffda0cc34" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_405a20e9-39ee-414c-b7ec-ebe78917f2fa" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityFileNumber_405a20e9-39ee-414c-b7ec-ebe78917f2fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_75667bca-c0ae-4ed3-a32e-b052b26a9dc5" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityTaxIdentificationNumber_75667bca-c0ae-4ed3-a32e-b052b26a9dc5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_65f57a4a-81ae-4330-8749-00bbed3771fe" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityAddressPostalZipCode_65f57a4a-81ae-4330-8749-00bbed3771fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_5dd82058-18d4-4339-ac47-260eed1c7a9c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityAddressAddressLine1_5dd82058-18d4-4339-ac47-260eed1c7a9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine2_e9d8aaa3-3ca0-4f76-b13a-0667d9217fba" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityAddressAddressLine2_e9d8aaa3-3ca0-4f76-b13a-0667d9217fba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_ff1cecb5-f668-429d-841c-e445b9b8bdb0" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityAddressStateOrProvince_ff1cecb5-f668-429d-841c-e445b9b8bdb0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_74ecebe6-99bf-44a7-a94b-37bfa032397f" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityAddressCityOrTown_74ecebe6-99bf-44a7-a94b-37bfa032397f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_0f18a16d-bea5-4b7f-9425-5ad14873479e" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_CityAreaCode_0f18a16d-bea5-4b7f-9425-5ad14873479e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_7d9c13d3-1364-454c-a1f8-02ccff68c2a0" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_LocalPhoneNumber_7d9c13d3-1364-454c-a1f8-02ccff68c2a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_WrittenCommunications_2cd0f0d0-8dc9-4c4a-948e-076365d964e2" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_WrittenCommunications"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_WrittenCommunications_2cd0f0d0-8dc9-4c4a-948e-076365d964e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SolicitingMaterial_b3d09d76-5f5b-4155-916e-76a642c06199" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SolicitingMaterial"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_SolicitingMaterial_b3d09d76-5f5b-4155-916e-76a642c06199" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementTenderOffer_de5ba559-c8f3-4983-a21c-26986f56d4d3" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementTenderOffer"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_PreCommencementTenderOffer_de5ba559-c8f3-4983-a21c-26986f56d4d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementIssuerTenderOffer_bee94fbf-06d1-4124-b544-0e89004e8360" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementIssuerTenderOffer"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_PreCommencementIssuerTenderOffer_bee94fbf-06d1-4124-b544-0e89004e8360" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_366121e7-4d0e-4bba-b27a-bbee5dee1f6d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_Security12bTitle_366121e7-4d0e-4bba-b27a-bbee5dee1f6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_a6824481-36c0-4b8a-839e-fa68d5288b18" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_TradingSymbol_a6824481-36c0-4b8a-839e-fa68d5288b18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_6c937c19-d712-4803-bae4-89cd70741086" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_SecurityExchangeName_6c937c19-d712-4803-bae4-89cd70741086" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_18a74c75-3e04-46b4-aa5c-3f434b2ddebe" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityEmergingGrowthCompany_18a74c75-3e04-46b4-aa5c-3f434b2ddebe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_c111ecee-3d9c-4520-9bb3-bc2f36e3b860" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_AmendmentFlag_c111ecee-3d9c-4520-9bb3-bc2f36e3b860" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_40cf0739-f2c7-4209-8e21-1dae83f74f3b" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_fa07269f-2717-441c-9e5f-6d6a56b36838" xlink:to="loc_dei_EntityCentralIndexKey_40cf0739-f2c7-4209-8e21-1dae83f74f3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>6
<FILENAME>spscommercelogoa.jpg
<TEXT>
begin 644 spscommercelogoa.jpg
M_]C_X  02D9)1@ ! 0$ 2 !(  #_X0,N17AI9@  34T *@    @ ! $.  (
M   A   !2H=I  0    !   !;)R;  $   !"   "Y.H<  <   $,    /@
M   <Z@    $
M
M
M
M
M
M:&]R:7HM8FQU+5)A<W1E<C,P,"U!<G1B;V%R9#$P,#     %D ,  @   !0
M  *ZD 0  @   !0   +.DI$  @    ,P,   DI(  @    ,P,   ZAP !P
M 0P   &N     !SJ     0
M
M
M
M
M
M           R,#(S.C$R.C(W(#$Q.C(R.C,S #(P,C,Z,3(Z,C<@,3$Z,C(Z
M,S,   !H &\ <@!I 'H +0!B &P =0 M %( 80!S '0 90!R #, ,  P "T
M00!R '0 8@!O &$ <@!D #$ ,  P #    #_X03W:'1T<#HO+VYS+F%D;V)E
M+F-O;2]X87 O,2XP+P \/WAP86-K970@8F5G:6X])^^[OR<@:60])U<U33!-
M<$-E:&E(>G)E4WI.5&-Z:V,Y9"<_/@T*/'@Z>&UP;65T82!X;6QN<SIX/2)A
M9&]B93IN<SIM971A+R(^/')D9CI21$8@>&UL;G,Z<F1F/2)H='1P.B\O=W=W
M+G<S+F]R9R\Q.3DY+S R+S(R+7)D9BUS>6YT87@M;G,C(CX\<F1F.D1E<V-R
M:7!T:6]N(')D9CIA8F]U=#TB=75I9#IF868U8F1D-2UB83-D+3$Q9&$M860S
M,2UD,S-D-S4Q.#)F,6(B('AM;&YS.GAM<#TB:'1T<#HO+VYS+F%D;V)E+F-O
M;2]X87 O,2XP+R(^/'AM<#I#<F5A=&5$871E/C(P,C,M,3(M,C=4,3$Z,C(Z
M,S,\+WAM<#I#<F5A=&5$871E/CPO<F1F.D1E<V-R:7!T:6]N/CQR9&8Z1&5S
M8W)I<'1I;VX@<F1F.F%B;W5T/2)U=6ED.F9A9C5B9&0U+6)A,V0M,3%D82UA
M9#,Q+60S,V0W-3$X,F8Q8B(@>&UL;G,Z9&,](FAT=' Z+R]P=7)L+F]R9R]D
M8R]E;&5M96YT<R\Q+C$O(B\^/')D9CI$97-C<FEP=&EO;B!R9&8Z86)O=70]
M(G5U:60Z9F%F-6)D9#4M8F$S9"TQ,61A+6%D,S$M9#,S9#<U,3@R9C%B(B!X
M;6QN<SID8STB:'1T<#HO+W!U<FPN;W)G+V1C+V5L96UE;G1S+S$N,2\B/CQD
M8SIT:71L93X\<F1F.D%L="!X;6QN<SIR9&8](FAT=' Z+R]W=W<N=S,N;W)G
M+S$Y.3DO,#(O,C(M<F1F+7-Y;G1A>"UN<R,B/CQR9&8Z;&D@>&UL.FQA;F<]
M(G@M9&5F875L="(^:&]R:7HM8FQU+5)A<W1E<C,P,"U!<G1B;V%R9#$P,# \
M+W)D9CIL:3X\+W)D9CI!;'0^#0H)"0D\+V1C.G1I=&QE/CQD8SID97-C<FEP
M=&EO;CX\<F1F.D%L="!X;6QN<SIR9&8](FAT=' Z+R]W=W<N=S,N;W)G+S$Y
M.3DO,#(O,C(M<F1F+7-Y;G1A>"UN<R,B/CQR9&8Z;&D@>&UL.FQA;F<](G@M
M9&5F875L="(^:&]R:7HM8FQU+5)A<W1E<C,P,"U!<G1B;V%R9#$P,# \+W)D
M9CIL:3X\+W)D9CI!;'0^#0H)"0D\+V1C.F1E<V-R:7!T:6]N/CPO<F1F.D1E
M<V-R:7!T:6]N/CPO<F1F.E)$1CX\+W@Z>&UP;65T83X-"B @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" *
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @( H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" \/WAP86-K970@96YD/2=W)S\^_]L 0P #
M @(# @(# P,#! ,#! 4(!04$! 4*!P<&" P*# P+"@L+#0X2$ T.$0X+"Q 6
M$!$3%!45%0P/%Q@6%!@2%!44_]L 0P$#! 0%! 4)!04)% T+#104%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04%!04_\
M$0@ Y@,6 P$B  (1 0,1 ?_$ !\   $% 0$! 0$!           ! @,$!08'
M" D*"__$ +40  (! P,"! ,%!00$   !?0$" P $$042(3%!!A-180<B<10R
M@9&A""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#4V-S@Y.D-$149'2$E*
M4U155E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JBHZ2E
MIJ>HJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ\?+S
M]/7V]_CY^O_$ !\!  ,! 0$! 0$! 0$        ! @,$!08'" D*"__$ +41
M  (! @0$ P0'!00$  $"=P ! @,1! 4A,08205$'87$3(C*!"!1"D:&QP0DC
M,U+P%6)RT0H6)#3A)?$7&!D:)B<H*2HU-C<X.3I#1$5&1TA)2E-455976%E:
M8V1E9F=H:6IS='5V=WAY>H*#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*S
MM+6VM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+CY.7FY^CIZO+S]/7V]_CY^O_:
M  P# 0 "$0,1 #\ _5.BBB@ HHHH **** "BBB@ HHHH **:S!5+,P"@9))Q
MBO//%/[07@'PB72\\1VUQ<+QY%CFY;/H=@(!^I%=%'#UL1+EHP<GY*YQXK&8
M;!0]IB:D8+O)I?F>BT5\T:[^V]HEN771_#E]?=E>\F2W!]\+OX_SQ7$ZE^VY
MXJF8_8-#TBU0]//$LK#\0R\_A7T%+AK-*JO[.WJU_P .?&XCCG(<.[>WYG_=
MBW^-K?B?9M%?-?P)^.'Q$^(/CNWLM7T:(Z%+%(TUU#9O$L&U6*L')(.6 7!]
M?:OI2O(QV!JY?5]C6:;M?1W/I,IS;#YSA_K.&4E&]O>5GI;\-=PHHHKSCV@H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M/2I2DNZBVOP0\1FV782HZ6(Q$(2724XI_<V>K45Y3_PU+\,/^AG_ /*?=?\
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
MO;J]WYL*\?\ VA_CDOPET2*UT[RYO$=^I-ND@W+#&.#*P^N0H[D'J 17L%?
MGB@7'QR_:,GL?-?[/=ZB;.-E/,=K$2"RYZ'8C-]2:^ER# TL9B)5,1_#IKF?
M^7Z_(^&XPS;$9;@X4,%_&K2Y(^5]VO/9+UOT)OAS\$O&'QZU";7M2OY+?3Y9
M")-6O]TCS$'D1+GYL=.H4= >,5[KI_[%O@FWMU6ZU#6+N?\ BD$T<8S[*$X'
MU)KW32=+M-#TVUT^Q@2VL[:-8H88QA54# %7*TQG$F-KS_<2]G!;)::?U\C'
M+."<KPE)/%P]M5?Q2E=W?6R_I]V?+WC+]B6PDM9)?"VMW$-T!E;?5-KQO[;T
M4%?R:I?V7O#?Q*\)^(M0TK5XI+/PO9EDE@OLL/-(RIMSZ<@DCY2">^*^G*2L
M)Y]BZV&GA<1::>S:U7H==/A#+L+CJ>/P=Z4H[J+TEY-=NZ6C/.OC=\7[7X0^
M%?MA1+K5KHF*QM&. [ <NW?:N1G'J!QG-?)_@CX8^-/VDO$%SK>I:@ZV8?9-
MJMV"R@]?+B08SC/W1A1ZC/-K]HS6+KXC?'@Z%:ON6WFATBU7.5$C$!CCUWN1
M]%%?:GA+PS9>#?#>G:)IT8CM+*%8DXP6QU8^[')/N37N>T7#V7TYTDO;U5>[
M^ROZM\[WV/DW0EQEG%>EB)-83#OEY4[<TMM?N?HK6M=L\>TK]C7P+9VJI>3:
MIJ$^/FE:X$8S[*J\#ZD_6L?Q=^Q5X?OK61_#FJWFF7H7Y([PB:!CV!P RY]<
MGZ5](TE?.QSW,HSYU6=_P^[8^UJ<)9'4I>R>%BEY:/[]_P 3X)\)^-/&/[,O
MCA]*U.*4V.\-=::SYAGC/_+6(] <=&'<8;H0/N;P_KUEXHT6RU;39A<6-Y$L
MT4@[J1W'8CH1V((KQ_\ :T\ 0>*/AK-K,<0_M+1")TD4?,T)($B'VP0W_ />
MN<_8G\72ZAX6UOP]-(7&FSK/ &/2.7=N4>P9"?JYKW,R5/-\N6:0CRU(.T[=
M?/\ %?ET/D\DE7X<SIY!4FY4*B<J=]UNVOP=_-)V5V4?VYO^05X1_P"NUS_Z
M#'7@_P )_B#J?P=\9:?K!AF-A=1C[1;]!<V['!*YX)!4D'U4CUKWC]N;_D%>
M$?\ KM<_^@QU##\&T^*7[,OA>XL8U_X2'3;>:2T;@&9?.<M"3[]O1@.@)KW<
MMQ5##Y-0IXI7IU)2B_*[EK^'RW/D\[P&+QG$^+JX"5JM&,9Q\[*"M]SVZ[=3
MZ<TC5K37M,M-1L)UN;*ZB6:&9.CJPR#5ROD+]DGXOOH>I-X$UN5H[>>1O[/,
MV1Y,Q/S0\] QR0/[V1U:OH3XP?$^S^%/@RYU:;;+>O\ N;*V8_ZV8@X!_P!D
M=2?0>I%?"X[*:^$QOU.*YG+X?-/;_@GZUE7$6%S#*O[3F^517OK^5K=?Y=[K
MJ>.?M=_&,:;8MX(TF?\ TNY4/J4D9YCB/*Q?5N"?]G _BKYS^%]K-9_%KP;%
M<1/#*-9L24D&" 9HR./H17I'[/?PKN_C)XWN_%/B3?=Z5;7!GN7F&1>7!.X1
M^FT9!8>F!WXH^)./VN8!C _X2:T_]'1U^E8)8? TZF5T=91@Y3?]Y_U\E;S/
MPS-)8S-JU'/L3[L)U8PIQ_NIMW^]?-WZ6/NZOSB^,%G/J'QF\5VUK"]Q<2:I
M.J1QC+,=YX [GVK]':^$O^;NO^YG_P#:U?)\*5'1J8BHND+_ ''Z+XA45B*.
M#HMV4JB7WJQZ'^R%\9 RCP-J\_S#<^ERR'J.2T.?;EE_X$/05]4U\6?M-?"6
MX^&WBR#QEX>#VVFW5P)2UOP;*Z!W C'16(W#T((XXKZ0^!OQ6M_BQX+AOR43
M5K;$%_;K_#)CAP/[K#D?B.U<V>86GB*<<VPB]R?Q+M+_ (/Y^J.SA3,*^#JS
MX>S%_O:7P/\ FATMZ+;RT^RSN[Z^M]+L;B\NYEM[6WC:66:0X5$49+$^@ K\
M]_C/\2[[XR>-KF^@BE_LNS1ULK?!/EP+RTC#L6QN/IP,G KV+]KOXQF5_P#A
M!-'FR,J^J21G))ZI!_)F_P" CU%2:-\%Q\-?V=/%NJZG#CQ'J>G[I0PYMHMR
ME8O8]"WO@?PUZF2T*>4TH8W$+]Y5:C!>3>K_ *Z6[G@\4XJMQ%B*N5X*5J-"
M+G4ET<HIM1^]6];O[(G["O\ S.__ &X_^W%>P?M)?\D1\5?]<8__ $<E>/\
M["O_ #.__;C_ .W%>P?M)?\ )$?%7_7&/_T<E<.:?\E&O\=/\HGK9#_R1+_Z
M]UOSF?,O[.'P-T'XP66NS:S=ZC;-820I&+&2- 0X<G=N1O[HZ8KV7_AB?P/_
M -!7Q!_X$0?_ !FN>_89_P"07XN_Z[6W_H,E?455GF;8[#YC5I4:K45:R^2,
M^$^'<IQV2X?$8G#QE.7-=OK[S7Y'S]_PQ/X'_P"@KX@_\"(/_C-=O\*_@+H'
MPAU"^O-'O-2N9+R)8I!?2QN  <C&U%YKTJDKYRMFV.Q%-TJM5N+W1]OA>',I
MP5:.(P^'C&<=FNA\T_MP_P#(J^&?^OV3_P! KGO@Q^R[X5^(WPUT?Q#J5_K$
M%[>>=YD=K-$L8V3.@P&B8]$'?KFNA_;A_P"15\,_]?LG_HNO0?V6?^2$>&/^
MWK_TJFKZGZW7P?#]&IAYN+<VM.WO'Y^\OPF9\98JCC*:G%4D[/O[BO\ BSE/
M^&)_ _\ T%?$'_@1!_\ &:X;XF_L:G1M%N-2\(ZE<ZB]NA=]/O0IED4#)V.H
M +?[.WGL<\'ZZI*\*CQ#F5&:FZKE;H]F?68G@S(\12E26'46^JNFO/\ X?0^
M5?V1?C-?7]\/!&L7#7*>4TFFS2'+KM&6A)[C;EAZ;2.F /J#5-4M=%TVZU"^
MG6VL[6-III7. BJ,DG\*^%?ASY,G[4T!TL?Z&==NC!Y?3R=TF,>VS]*]P_;.
M\7RZ+X!T[1(',;:Q<GS<'[T46&9?^^FC_+WKV\WRR&(S:C3HKE]JDWY;W?W+
M[SY7AS/:N"X>Q-?$RY_J\G&+[[<J^]V]+'B7Q(^*OBK]H3Q='H.APW']E22[
M+/2H3CS,?\M9CT)QSS\JC\2?3_!O[$MBMK%-XIURXEN2 6M=+"HB'T,C@EOP
M45T/['GP]M]#\"MXGFB4ZEK#LL<C=4MT8J%'IEE9CZC;Z5]!5.:9U/!3> RW
M]W"&C:W;ZZ_TWW-<@X7IYI26;YY>K5J^\DV[13VT7ETV2TL?/]]^Q=X)N+5T
MMK_6+6?&5D\^-P#[J4Y'XCZUX]XC_9Y^(/PD\3Z??>%;BXU3S)UBM[[35*2(
MQ/ E3)"J>Y)*8ZGG%?<-%>7AN(\?1;527M(O=2U_X)[^.X)RC%).A#V,UJI0
M=FOT_4R_#2ZLF@6 UU[:35Q$OVIK,$1%^^W/./\ /%?G]\"/AWIOQ0^($.AZ
MK/=6]H]O+*7LW59,J 1RRL,?A7Z*U\)?L@_\EFMO^O*X_D*]3(*TZ>#Q]:F[
M2235NGQ;'S_%^&I5LRRC#5ES1<I)WUNOW>_J>V?\,3^!_P#H*^(/_ B#_P",
MT?\ #$_@?_H*^(/_  (@_P#C-?0-%>!_;N9?\_V?8?ZIY'_T"Q_KYGC7@?\
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
M6ED>05\-'6;A-RE_-+E=WZ=%Y>=SQ3]A7_F=_P#MQ_\ ;BO8/VDO^2(^*O\
MKC'_ .CDKQ_]A7_F=_\ MQ_]N*]@_:2_Y(CXJ_ZXQ_\ HY*]+-/^2C7^.G^4
M3P\A_P"2)?\ U[K?G,^,?AA\)O%?Q+AU"3PVT:I:,BS^9<^5RP.WZ]#7<?\
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
MXL;7^JX6K7_DBW]R;/SFD=I'9W)9V.23U)JQINGRZMJ5I8P#,]S*D,8_VF8
M?J:K5[#^RU\/Y?&GQ0L[YXR=-T4K>S.1QY@/[I<^I8;OHAK^A\9B(X/#SKRV
MBK_Y?>S^+\MP53,L;2PE-7<VE\NK^2U/NS2]/CTG3;2QA&(;:%(4 &,*J@#]
M!5NDI:_G%MR=V?VW&*BE%;(2O//CA\*(?BYX+DTY72WU.W;S[&X?HLF"-K8Y
MVL.#^!P<8KT2BML/7J8:K&M2=I1U1S8S"4<=AYX;$1O":LT?F%XL\%ZWX%U1
M]/US39]/N5) \Q?D<#NC#AA[@FL2OU0OM.M-4MFM[VUAO+=OO13QAT/U!&*P
M[?X:^$;6<S0>%=%AF)R9(].A5B>N<A:_2*7&<>3][1][R>G_  /Q/P_$>&$O
M:MX?$^Y_>CJON=G^!^<_AOP+XB\72*NBZ)?:F"<;[>!F0?5L;1^)KH_%/P%\
M=^#=#.KZKH$D-@HS))%-'*8AZN$8D#WZ#O7Z+JBQH%50JJ,!5& !Z5PWQO\
M$UCX5^%?B2YOF4+/9RVD4;?\M99$**H'?KD^P)[5E3XMQ6(Q$*=*BK-I6U;^
M_3\CIK>'. P>"JUL1B9.48MWLE%65]5J_P 3\XJ*2NQ^$7@M_'_Q&T31A'YE
MO+<+)<^@A3YI,_\  01]2*_3*U6-"G*K/:*N_D?A6'P]3%5X8>DKRDTEZO0_
M1C05F70].%P<W MHQ)_O;1G]:T*2EK^:I/F;9_<L8\L5'L%?GE^T9XN'C'XO
M:Y<1OOM;-Q80>FV+Y6(]B^\_C7VQ\8O'2_#GX=:QK0<+=)$8K0'O._RI]<$[
MC[*:_-UG:1V9B69CDLW))]:_2N#L&W*IC)+^ZOS?Z'X=XF9FE"CEL'J_?E^4
M?U^Y'=_ WP:?'7Q2T'363?:K.+FYXR/*C^=@?8X"_P# A7Z-U\S_ +%O@ Z?
MH>I>+KF/$M^WV2T)'/DH<NP]F< ?]LZ^F:\7BG&K%8[V47I3T^?7_+Y'T_ &
M5O 92J\U:59\W_;NT?U?S"BBBOCC],"BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH *^ ?VE?A>WPY^(,\UK%LT;5
M2UU:%1A48G]Y%_P$G(]F6OOZN(^,'PSM/BKX+N]'GVQ7:_OK*Y;_ )8S ?*?
M]T\J?8GOBOH\BS/^S,6I2^"6DO\ /Y?E<^)XMR+^W<N=.FOWL/>CZ]5\U^-C
M\WJ^E/V3/C6N@WR^"]:N-NGW<F=.FD/$,S'F(YZ*YZ?[1_VJ^>-<T2^\-ZQ=
MZ7J5N]I?6LABFA<<JP_F.X/0CFJ73D<&OV;'8.CF>&=&>SU3[=FC^8LIS/$Y
M#CHXFEI*+LT^JZQ?]:/7H?JOS2U\P?L\_M.07T%IX8\872P7<:B*TU69\+/V
M"2D]&QT8\'OS][Z>'//45^$8_+Z^75G1KKT?1KNC^M\GSC"9UAEB<+*_==8O
MLU_5]T+1117FGN!7B'[8&J'3_@W-;YQ]NOH+?ZX+2_\ M/\ 2O;ZBFM8;AHV
MEACE,;;D+J#M/J,]#7;@L0L+B:=>4;\K3MZ'EYI@Y9A@JV$A+E<XN-[7M?1Z
M:=#\]_AO^SYXO^)%S$T-A)I>E$C?J5\A1 OJBGESZ8X]2*^XOAM\.-)^%WAF
M'1M)0E0=\US(!YD\AZNQ'Y =@ *ZNDKULUSS$YK:$_=@NB_5]?ZT/G>'^$\#
MP_>I3O.J]')_DET_%^8M%137$=M"\LTBQ1*,L[L% 'J2:X+Q)\?O 'A<,+OQ
M-9S2K_RRLF-RV?3]V#C\<5XE'#UL0^6C!R?DFSZK$XS#8.//B:D8+^\TOS/0
MJ*^:O$?[;FAVH9-#T"^U!QP)+R1;=/J -Y(_*O*O$G[7WCW7-Z6,MEH<1X'V
M.W#OCW:3=S[@"OH\/PQF6(U<%!?WG^BN_P #XG&\>9'A+J-1U'VBK_B[+\3[
MH9Q&K,S!549+$X 'K7"^)/CIX#\)[UO_ !/8F5>L-JYN'!]"L88@_7%?G]XA
M\<^(?%C$ZSK=_J8SD)<W#N@^BDX'X"L2OIL/P;!:XFLWY15OQ=_R/A,;XG5'
MI@L,EYR=_P %;\S['\1_MM>'K/>FB:%?ZHXX$ETZVZ'W&-QQ]0*^;?BA\7O$
M'Q8U1+G6)ECMH2?L]C;@K#"#W )R6/=CS]!Q7%4^"&2ZFCAAC:661@J1HI9F
M)Z  =37UN!R7 Y=+VE&'O=V[O_@?(_.LUXHS;.H>QQ-7W']E*R_#5_-L97V]
M^RK\'9/ GAV3Q!JL!BUO58P$B<8:WM^H4^C,0&(]E'!!KE?V>_V7I--N+3Q-
MXRM]MS&1+9Z2_.P]0\P]>A"=N_/ ^HZ^(XESV%>+P6%=X_:??R7ZL_5>!N$J
MF$FLTS"-I?8B]U?[3[/LNF^]A:**\R^/OQ:B^%/@J6:%U.N7P:"PB/.&Q\TA
M'H@.?<[1WKX'#X>IBJT:%)7E)V/V#&XRCE^&GBL0[0@KO^N[V7F?._[7WQ.'
MB;Q9#X7L9=^GZ,Q-P5.1)=$8(_X /E]B7%>->!/!U[X_\6Z;H-@/W]Y*$,F,
MB-.KN?95!/X5B3327$SS2NTDLC%G=CDL2<DD^N:^U?V3_@^W@WPX?$VJ0;-8
MU6,>3&X^:"V."![%R Q]@OO7[/BJU+AW+%"'Q)67G)]?U_ _E_ 8;$<:9[*K
M55HM\TO[L%M'UMHOO[GMWAW0;3POH=AI-A'Y5G90K!$O?:HQD^I/4GN2:TJ*
M*_$92<FY2=VS^JH0C3BH05DM$%%%%26%%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4E+10!X?\ M&_ )/B9I_\
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
MBM&*NW:*;E97;>[[*R22****\P]T**** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHI* *FI:M9:/#YU_>6]E#G'F7,JQKZ]2:XK7/C]\/?#ZM]I\5V$K
M+_#9L;D_3]V&K ^/'P%D^,TVDSPZV=+DL5=/+DA,L;!B#D#<,'C\1CTKS[3_
M -AO3XV!OO%MS<+GD6]DL1_5V]Z^EP6%RF5&-3%XAJ76*B]/G9H^&S/'\1PQ
M,J.78.,H*UIRDM=/Y;I[Z&IXE_;7\-6 =-$T>_U:4=))RMO$?<'YF_-17C/C
M#]J[Q[XKWP6=U%H-L_ CTU,2$?\ 71B6!]UVU]":'^Q_\/M*96NH=0U@CJ+R
MZ*KGZ1A*]+\-_#?PMX0VG1M T^PD7I-% OF?BY&X_B:]:.89%@=</AW4EWE_
MP;_^DGSE3)N+,UTQF,C1@^D+W_"W_I1\)^&?@?\ $+XD77VR/2+PK.=SZAJK
M&)6_VMS_ #/_ ,!!KWOP#^Q=I&F-%=>+-2?5YE()LK/,4'T9OOL/IMKZ5HKC
MQG%&.Q*Y*35./EO]_P#E8]/+> LIP,E5KIUI_P![:_\ A_SN9V@^'=,\+Z='
M8:186^G6<?W8;:,(OU..I]SR:T:**^2E)R;E)W;/T:$(TXJ$%9+H@HHHJ2PH
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@!*
M6BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
C HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm46297560468032">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cover<br></strong></div></th>
<th class="th"><div>Oct. 24, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Oct. 24,  2024<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">SPS COMMERCE, INC.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34702<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">41-2015127<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">55402<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">333 South Seventh Street<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite 1000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MN<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Minneapolis<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">612<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">435-9400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementTenderOffer', window );">Pre-commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementIssuerTenderOffer', window );">Pre-commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common stock, par value $0.001 per share<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">SPSC<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001092699<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementIssuerTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Section 14a<br> -Number 240<br> -Subsection 12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SolicitingMaterial</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_WrittenCommunications</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>9
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( *>!6%D'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " "G@5A9^,LF6.\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M3L,P#(9?!>7>.DD'AZCK96BG(2$Q"<0M2KPMHFFCQ*C=VY.6K1."!^ 8^\_G
MSY)K$Y3I(S['/F DA^EN]&V7E EK=B(*"B"9$WJ=RISH<O/01Z\I/^,1@C8?
M^H@@.7\ CZ2M)@T3L @+D36U-<I$U-3'"]Z:!1\^8SO#K %LT6-'"40I@#73
MQ' >VQIN@ E&&'WZ+J!=B'/U3^S< 79)CLDMJ6$8RJ&:<WD' 6]/NY=YW<)U
MB71G,/]*3M$YX)I=)[]6F\?]EC62RU4A>"%7>\F5J)2X?Y]<?_C=A'UOW<']
M8^.K8%/#K[MHO@!02P,$%     @ IX%869E<G",0!@  G"<  !,   !X;"]T
M:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M
M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R
M>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2P]R"BPA+>!3+
MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,!
M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K
MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2
MBW <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_KFVB<"HU;3]-K
M=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K>A(5M>5 TR
M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$
MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7<K_WUE[O)I#-ZG7TZSFN4
M?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R.AQG0GS/]O:1
MI24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG LR+7E$8D19_(
M+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(R-^-B/>K;YH]
M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M
MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZ<TT#PE"\D^DJ1CVFS(Z=T)LWH
M,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.FJW"$2M"/F(9
M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+
MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T
M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+
M.7\N?<^E[[GT/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7<LW(QU2ODRG8
M.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD6R4)RU3393>*
M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W<DOJMI2^M28X
M2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-MNIW<.CB>F)&Y
M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_#
M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0
MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR
ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC
MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYN<KGHB=OJ7
M=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(CE1P&%A<RY%#N
MDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>TB42%(JP# 4A
M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF
M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'<YMZN,)%K/]8UA[Y,M\Y<-LZW@->
MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_
M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]!
MU4#E/]O4#6CV#30<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04
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
M-4H2U\7!ZQ^4ZD2HN7/08&<B+EA0BJN$7/D=<.I[.T!*1D.QD8E>I6.5Z*U
M.EK >MKBRAE#VQH%.JB]XY8:8P*IL0,@9^O1=#%-)IXPC,^[V?S!9@K(RDT*
M$3FQ!'_'G2/)W55D(TADIJ]X(;+U[/M!3EN#OI'-X_T,:3?D@6)8YL_X>\87
M_QO.\1'"[K\_L;S63AI_YHOA/UY_ 5!+ 0(4 Q0    ( *>!6%D'04UB@0
M +$    0              "  0    !D;V-0<F]P<R]A<' N>&UL4$L! A0#
M%     @ IX%86?C+)ECO    *P(  !$              ( !KP   &1O8U!R
M;W!S+V-O<F4N>&UL4$L! A0#%     @ IX%869E<G",0!@  G"<  !,
M         ( !S0$  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4    " "G
M@5A9M;?YIEL$   D$0  &               @($."   >&PO=V]R:W-H965T
M<R]S:&5E=#$N>&UL4$L! A0#%     @ IX%869^@&_"Q @  X@P   T
M         ( !GPP  'AL+W-T>6QE<RYX;6Q02P$"% ,4    " "G@5A9EXJ[
M',     3 @  "P              @ %[#P  7W)E;',O+G)E;'-02P$"% ,4
M    " "G@5A9JL0B%C,!   B @  #P              @ %D$   >&PO=V]R
M:V)O;VLN>&UL4$L! A0#%     @ IX%8620>FZ*M    ^ $  !H
M     ( !Q!$  'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%
M  @ IX%86660>9(9 0  SP,  !,              ( !J1(  %M#;VYT96YT
A7U1Y<&5S72YX;6Q02P4&      D "0 ^ @  \Q,

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>23</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>0</UnitCount>
  <MyReports>
    <Report instance="spsc-20241024.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.spscommerce.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="8-K" isOnlyDei="true" original="spsc-20241024.htm">spsc-20241024.htm</File>
    <File>spsc-20241024.xsd</File>
    <File>spsc-20241024_lab.xml</File>
    <File>spsc-20241024_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="28">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>16
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "spsc-20241024.htm": {
   "nsprefix": "spsc",
   "nsuri": "http://www.spscommerce.com/20241024",
   "dts": {
    "inline": {
     "local": [
      "spsc-20241024.htm"
     ]
    },
    "schema": {
     "local": [
      "spsc-20241024.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd"
     ]
    },
    "labelLink": {
     "local": [
      "spsc-20241024_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "spsc-20241024_pre.xml"
     ]
    }
   },
   "keyStandard": 23,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 7,
    "http://xbrl.sec.gov/dei/2023": 7
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 24,
   "unitCount": 0,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2023": 28
   },
   "report": {
    "R1": {
     "role": "http://www.spscommerce.com/role/Cover",
     "longName": "0000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "spsc-20241024.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "spsc-20241024.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line Two",
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre-commencement Issuer Tender Offer",
        "label": "Pre-commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre-commencement Tender Offer",
        "label": "Pre-commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Soliciting Material",
        "label": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://www.spscommerce.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Written Communications",
        "label": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Section": "14a",
   "Number": "240",
   "Subsection": "12"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>17
<FILENAME>0001092699-24-000072-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001092699-24-000072-xbrl.zip
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
M =8*P)%2?TBZTI?LY3CY1F__;Y0K%@OY1?_6LE1"=P9*.O/NGFUM=2L('MO
M9R^]E&B&%5A /<9N<I9*@0 < 7[@(&$"$C]A/\@2TM)-$^WW#S#109J.&+K?
MO=6M[(>?ER(GW;E*^/FRTV,",I.<#'K73\!J,SGX)9-=6:$T\/YPW*V%M&JA
MK0>6;#H*@.>_0DM4B(]C2GT)R =!6JOGMT(?W8<<=!HM!R][5!&:Y^;U"<"B
M#'XF6/QD1?(Q+?W,2GP6DI"I] GS<JKEO%T),WN.#?881#VFX46@E ]?9!A'
MH'?E?(8F"5,.GK]HF@0L_46FJ:<>3G&'I7N'TQL&_BC/0O7#,'IB69MY26I*
MW$$($'R<H&G&:B?J)2#PR;1@-=?SJ1;@,\T4C"RJF2;14J8KV \P2?B;<H!G
MFL_*<IP]RAZ2%.R B,X/5$^PWJA^ +>##8, <9EF'8)5,2NA1=34!X47IC;-
M'&<&8 :?3(.?)9L/,%W5( +&S.@GR[#VXR6\=-E%FN2.W8%/GF"9CK$JLSAY
MF5J<*=WP*L!X?A>A6KCT&0!+\"@*?,#&[Q1-8#K3R5)-.IRFVC.:H/U!L@FF
MDFV:'54W0'\"$$19FGLJ/3\_+_.G?=JN->R?N\^?K[]>72.Z;O:#XBUBX+RY
M_?WF]N;A6OIZ_7!Y\TGZ<O?7]5>)^OQ@8=^2Y83MO @[2[:GJ"]0,-4VOP"%
M4;,2[GB ;4?H,-(=M8_@81S0='.V%R)X(F9CLQ<!75![)GLIM6<*L3;W&JK<
MTJ>>_81E<*>9KX'N4C:8"YL:Z)30O'Q:G]Q@G'5^W[^SI%5IY*K:KC3R^D3^
MGPGS"$^# +,Z\L^Y4X5K]UM6]A$0UMR,R<.(^I<SKV@(E.I[K-_9S+<"YFS*
M;D\0K2#)JZ2DJ7*:\:>-CJS/VSFRJ,8 X,U\-I2OKG&D,56B1P(J%[."%.!K
MR=I'IM,?)Z0_7A!W1?'6$(>P+^B"D?1;A&./SN<C\ZE%16W8;/' ;^$6JBT5
M3K+92^F=/=HXCCDDP++WZ/V4@63U5?1ML[LI(AC'R,5%YJ&$=\]TJGIRB@Y-
MDW<+0*>82;9 ), O+ZYD<)ROPDKS\B3F7*2>FL(9R$HY*1X Q#B8)+G+&8S#
M,&0*[S@&MDT):T6(B$G8,=TH=)CB5OH2CP#S!#Y)AR#?"\6,C@S:'7W_W.J
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
M"(N9[TRTFZD&4,3/3\1V-I M*E3Y18Y>IP$@D+,I]4P1U<.\8D=%NBR,YX/
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
M/+^!X>6)DVKZ6*YZ08.,AQS>S-7,.A,@)S9OT5&:\1$F(ARGOZU#[5>H-SS
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
M[U<T7+#=]XLE=(;=9B]&?P!02P,$%     @ IX%864Q*WKQ!"@  %%@  !4
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
M'KBU.QE VK. (T/6;F>;KXYQ76AMSKB%\<?[5^MGTN67R+Y_]3]02P,$%
M  @ IX%86?ZXM*#4!@  _C(  !4   !S<'-C+3(P,C0Q,#(T7W!R92YX;6S5
M6]MNW$82??=7S&I?MS1]8U\$6X%6L1?"*K%@*TBP+T1?JF>(<,@!A[*DO]\F
M)3FZ.6%$ J(?YM8L\E2?.F17%3EO?[C:E(LOV.R*NGJW1_?)W@(K7X>B6KW;
M^^7\ ^B]'P[?O'G[#X#?_OWI=/%C[2\V6+6+XP9MBV%Q6;3K1;O&Q:]U\WOQ
MQ2[.2MO&NMD '/:['=?;ZZ98K=L%(TS<F=UM;0XDM]IRK2$J[D 8*L$1X<%1
MH3R*S*,U_UH=>$O1>T9 :YV!",2!<<0 5XYJ9#0+EO<'+8OJ]X/NS=D=+M+T
MJEW_\]W>NFVW!\OEY>7E_I5KROVZ62T9(7QY9[UW:W[UQ/Z2]];4&+/LMWXU
MW17/&:;#TN5O/YU^]FO<6"BJ76LKWP'LBH-=/WA:>]OVK/^E7XMO6G2_X,X,
MNB&@##C=O]J%O<,WB\4-'4U=XB>,B^[SET\G#R!WVYVO-QML/.ZG+\O.9GE<
M)TTD;_N]V^LMOMO;%9MMB7=CZP9C&DO[0A=6FEX=YC]O=ES^ ;UM<)?TTD_U
M- W<[M^AO,@-O&JQ"G@SNSN0LO8/C,J.V_KKGJ5U6/:C>< B[X]ZY'9M8WV;
M1TL4DR8"4U2!$-2#P2R"#-)FTG&IN7XXZ\[K77*[#\4._?ZJ_K),!TXA8;S[
MTE'">SJ>P-U0\S*_[\Z]\V2;:T(-L58!\\R 2"<'6&4"4*6)-(18ZL(HM^^C
M/?3Z?DB/&K^HFX!-NGC<P=G&/PGO0]G>6BRWMDD' K\NRJ_.QJ;>3!&KMIZ
MN9NP)'?W%FG6$9L&P^E-5+XYN7YF;;JD8F\Y1<3/L"GJ\+X*/Z9K;NY4)FWD
M&80H!0@G,G"&!PA,*I$)FX;M)*%_ #M( VS^&G@YEZ\LAO=56[37GW!5=$Q4
M[<]V@[G@TD@>,L#,6A >#6CF A#-=$9-",SZ45IX#G60%/A\I3":R5DHX23E
M:<VV;GKB/R?^\;B^J-KF^K@.F!.BM(_" DE"3MQD# QC&KS6,09+O.=B F'\
MJ1.#="+FKI/I>)Z%;#X4)?Y\L7'8Y()DEI$D=&X0TTK89=TJ+8?H4&E#561Q
MW$+R&'&0(+*Y"^*%#,XB^N?VZB0DKHI8W)0?MQ-)RZ!4SEOPQ*:)8.!@.<-4
MBF7,,6E-\-D$4O@&_"!=R+GK8@IN9R&2HQ!2"'9G=:I:R_\5V_Y")[.8*9LN
M=)IVL^ \E>)*&"#$N30EI6C$"13R'/8@>:BYRV,TJW/2QNU'JNB1YED(FI%,
M ]5!=),P8+U(!98DB(%Z9<T42>@ST(.4H;\39;R8TYD*@^5H@K;6<N#>$A!1
M27"4=[F25,&PM#ZZ*1*,9Z '"<-\?\+X>YS.21A]YORQ.6OJ+T7E,8^1>O0N
M@RBE!L%, -W1@RF'=L9I%QR93AN/T(<UM,AWHH\QU,Y)(L?IZ\?FO+ZL<B70
MIR1:@C$N)EZL FN$Z]K]B3+.N%%Q.G7\ 3Q,&#-N=4Y!Z"MKHO/ZJ$%[4U]'
MJBV5 1S:#(13$8Q@&60V4*$5%\J,2SOOHPV+_HR;G"^F[I5#WMT,*\_6=757
M6*>ES%.>*B7*N[YLE@IK2Z,&PKR/46K/[+C5X3'BL-#/N*DYBL)7#O^O3=&V
M6!W7F\U%=5L\[W+F XDDI(HH> /"IRK)"(U E.0R"T8*9*,T\"SL,"',N&LY
MGLQ75L/GNBQ\T1;5ZJ>4US2%+7/' S$AI;JI7'8@:):!H1)!22L%\T128T9)
MX2GF,!W,N%DYDL97%L%9@YV",>6S_9W;[J9_\S$F/]+FS-DL,^!UY"",YF!9
M8B61I&7,9!"!CQ+#M[&'B6+&G<J):)V7.$YVNPML[L_%(1H14Z)+9*!)Z$R
MRX0 @MH0(E!S.2Y]^"L/A@EEQCW+22E^[04%_45:%*\I<^=%6V+.I:2,HNJ>
M(\.4&3L+CJGTEB:5!40:Y;B'9QXC#I/#C!N5HRA\Y?"?-[9[GO'S]<;596ZE
M9D)H"EQZDAS7%C0W"#%M"!G3VM%QSWL]@!L6^!DW(E].WDQ.^O=7?FVK%?8/
M>4AON/+40%"4@="$@[,H0!L?%%&"$BTG.?'OHPY[<FK&S<;15,ZBR?A^@\TJ
M2?D_37W9KM/BMK75=4ZU5<*K##B25"5+)\#:S ./@@O'0D WQ6W-9\&'"6/V
MS<;QQ+ZR/HY2AA.Z+.=#:5>YIY2B1P0>C >1,0+&N:1NSR*7R)T>F3L^@!NF
M@1FW'%].WBRN"L?)\\:6)RFQO?HO7N>"^$@4-Q"93S0P8J#[>P'08%-*&Y6(
MW$UP/7@$.TP%,^X^CB=S,C6\73XA\30-'+ZYW="]=7^7.'SS?U!+ 0(4 Q0
M   ( *>!6%FNZ8N1X#$  #V- P +              "  0    !E<E]Q,S(T
M+FAT;5!+ 0(4 Q0    ( *>!6%F$:FFP?0\  +=I   1              "
M 0DR  !S<'-C+3(P,C0Q,#(T+FAT;5!+ 0(4 Q0    ( *>!6%GPA.@980(
M  ('   1              "  ;5!  !S<'-C+3(P,C0Q,#(T+GAS9%!+ 0(4
M Q0    ( *>!6%E,2MZ\00H  !18   5              "  45$  !S<'-C
M+3(P,C0Q,#(T7VQA8BYX;6Q02P$"% ,4    " "G@5A9_KBTH-0&  #^,@
M%0              @ &Y3@  <W!S8RTR,#(T,3 R-%]P<F4N>&UL4$L%!@
0   %  4 /0$  ,!5      $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>spsc-20241024_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="spsc-20241024.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001092699</identifier>
        </entity>
        <period>
            <startDate>2024-10-24</startDate>
            <endDate>2024-10-24</endDate>
        </period>
    </context>
    <dei:AmendmentFlag contextRef="c-1" id="f-22">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-23">0001092699</dei:EntityCentralIndexKey>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-24">333 South Seventh Street</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2 contextRef="c-1" id="f-25">Suite 1000</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-26">Minneapolis</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-27">MN</dei:EntityAddressStateOrProvince>
    <dei:SecurityExchangeName contextRef="c-1" id="f-28">NASDAQ</dei:SecurityExchangeName>
    <dei:DocumentType contextRef="c-1" id="f-1">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-2">2024-10-24</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName contextRef="c-1" id="f-3">SPS COMMERCE, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-4">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber contextRef="c-1" id="f-5">001-34702</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-6">41-2015127</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-7">333 South Seventh Street</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2 contextRef="c-1" id="f-8">Suite 1000</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-9">Minneapolis</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-10">MN</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-11">55402</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-12">612</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-13">435-9400</dei:LocalPhoneNumber>
    <dei:WrittenCommunications contextRef="c-1" id="f-14">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial contextRef="c-1" id="f-15">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer contextRef="c-1" id="f-16">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer contextRef="c-1" id="f-17">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle contextRef="c-1" id="f-18">Common stock, par value $0.001 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-19">SPSC</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-20">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-21">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
