0001092699-24-000062.txt : 20240726 0001092699-24-000062.hdr.sgml : 20240726 20240726075633 ACCESSION NUMBER: 0001092699-24-000062 CONFORMED SUBMISSION TYPE: 8-K/A PUBLIC DOCUMENT COUNT: 15 CONFORMED PERIOD OF REPORT: 20240725 ITEM INFORMATION: Results of Operations and Financial Condition ITEM INFORMATION: Financial Statements and Exhibits FILED AS OF DATE: 20240726 DATE AS OF CHANGE: 20240726 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/A SEC ACT: 1934 Act SEC FILE NUMBER: 001-34702 FILM NUMBER: 241143574 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 8-K/A 1 spsc-20240725.htm 8-K/A spsc-20240725
FALSE0001092699333 South Seventh StreetSuite 1000MinneapolisMinnesotaNasdaq Global Market00010926992024-07-252024-07-25


UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
Washington, D.C. 20549
FORM 8-K/A
(Amendment No. 1)
CURRENT REPORT
Pursuant to Section 13 or 15(d) of
the Securities Exchange Act of 1934
July 25, 2024
Date of report (Date of earliest event reported)
SPS COMMERCE, INC. 
(Exact Name of Registrant as Specified in its Charter)
Delaware001-3470241-2015127
(State of Incorporation)(Commission File Number)(I.R.S. Employer Identification No.)
333 South Seventh Street, Suite 1000
Minneapolis, Minnesota
55402
(Address of Principal Executive Offices)(Zip Code)

(612) 435-9400 
(Registrant's Telephone Number, Including Area Code)
Not Applicable
(Former Name or Former Address, if Changed Since Last Report)
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):
Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)
Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)
Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))
Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))

Securities registered pursuant to Section 12(b) of the Act:

Title of each classTrading Symbol(s)Name of each exchange on which registered
Common stock, par value $0.001 per shareSPSCThe Nasdaq Stock Market LLC
(Nasdaq Global Market)

Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (§230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (§240.12b-2 of this chapter).
Emerging growth company
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
 



EXPLANATORY NOTE

On July 25, 2024, we filed a Form 8-K (“Original Form 8-K”) with the U.S. Securities and Exchange Commission (“SEC”), which included as Exhibit 99 to the Original Form 8-K an earnings release (the “Original Earnings Release”). The Company is filing this Amendment No. 1 to the Original Form 8-K (“Amendment No. 1”) solely to correct the range of non-GAAP income per diluted share set forth in the Fiscal Year 2024 Guidance outlook section of the Company’s Original Earnings Release. All other information contained in the Original Form 8-K, including the Original Earnings Release and information under Item 8.01, remains unchanged.

Item 2.02. Results of Operations and Financial Condition.

On July 25, 2024, we filed the Original Form 8-K, which included the Original Earnings Release. This Amendment No. 1 replaces the Original Earnings Release with the amended earnings release, which is attached as Exhibit 99 (the “Amended Earnings Release”) and incorporated herein by reference.

The Amended Earnings Release corrects and replaces the range of non-GAAP income per diluted share of $3.63 to $3.66 set forth in the Fiscal Year 2024 Guidance outlook section of our Original Earnings Release with a range of non-GAAP income per diluted share of $3.36 to $3.39. All other information contained in the Original Earnings Release remains unchanged. See “Use of Non-GAAP Financial Measures” and “Forward-Looking Statements” in the Amended Earnings Release for additional information.

In accordance with General Instruction B.2 of Form 8-K, the information in this Current Report on Form 8-K (other than information contained in Item 8.01), 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.

Item 9.01. Financial Statements and Exhibits.
(d)    Exhibits
Exhibit No.Exhibit
104Cover Page Interactive Data File (embedded within the Inline XBRL document)





SIGNATURES

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.


SPS COMMERCE, INC.
Date: July 26, 2024By:/s/ KIMBERLY NELSON
Kimberly Nelson
Executive Vice President and Chief Financial Officer






EX-99 2 er_q224-corrected.htm EX-99 Document
datasheetsimage.jpg
Exhibit 99
Contact:
Investor Relations
The Blueshirt Group
Irmina Blaszczyk & Lisa Laukkanen
SPSC@blueshirtgroup.com
415-217-4962

SPS Commerce Reports Second Quarter 2024 Financial Results
Company delivers 94th consecutive quarter of topline growth
Revenue and recurring revenue growth of 18% year-over-year
Announces new Share Repurchase Program

MINNEAPOLIS, July 25, 2024 (GLOBE NEWSWIRE) -- SPS Commerce, Inc. (NASDAQ: SPSC), a leader in retail supply chain cloud services, today announced financial results for the second quarter ended June 30, 2024.
Financial Highlights
Second Quarter 2024 Financial Highlights
Revenue was $153.6 million in the second quarter of 2024, compared to $130.4 million in the second quarter of 2023, reflecting 18% growth.
Recurring revenue grew 18% from the second quarter of 2023.
Net income was $18.0 million or $0.48 per diluted share, compared to net income of $14.7 million or $0.39 per diluted share in the second quarter of 2023.
Non-GAAP income per diluted share was $0.80, compared to non-GAAP income per diluted share of $0.69 in the second quarter of 2023.
Adjusted EBITDA for the second quarter of 2024 increased 16% to $44.2 million compared to the second quarter of 2023.
Share repurchases in the second quarter of 2024 totaled $17.5 million.

“As the retail industry continues to evolve, SPS is uniquely positioned to help suppliers, large and small, digitize their trading partner connections to achieve efficiencies and scalability,” said Chad Collins, CEO of SPS Commerce. “The mission-critical nature of our solutions fuels consistent demand for our product portfolio, and we remain confident in the growth opportunity ahead of us as e-commerce and omnichannel retail continue to grow.”

“SPS Commerce delivered a strong second quarter performance and the 94th consecutive quarter of revenue growth,” said Kim Nelson, CFO of SPS Commerce. “Retail dynamics continue to play a key role in the expansion of our addressable markets, and we believe our balanced growth approach is the right strategy to consistently deliver on our near-term and long-term financial targets.”

Share Repurchase Program
The Company also announced today that the Board of Directors of SPS Commerce authorized a new program to repurchase up to $100.0 million of common stock. Under the program, purchases may be made from time to time in the open market, in privately negotiated purchases, or both. The timing and number of shares to be purchased will be based on the price of the Company's common stock, general business and market conditions and other investment considerations and factors. The share repurchase program becomes effective on August 23, 2024, and expires on July 24, 2026. The Company’s August 2022 program that previously authorized repurchase of up to $50.0 million terminates on July 26, 2024. The program does not obligate the Company to repurchase any specific number of shares and may be suspended or discontinued at any time without prior notice. The Company had 37.0 million shares of outstanding common stock as of June 30, 2024. The Company intends to finance the share repurchase program with cash on hand.



Guidance
Third Quarter 2024 Guidance
Revenue is expected to be in the range of $157.6 million to $158.6 million.
Net income per diluted share is expected to be in the range of $0.52 to $0.53, with fully diluted weighted average shares outstanding of 37.9 million shares.
Non-GAAP income per diluted share is expected to be in the range of $0.83 to $0.84.
Adjusted EBITDA is expected to be in the range of $46.9 million to $47.7 million.
Non-cash, share-based compensation expense is expected to be $11.6 million, depreciation expense is expected to be $4.7 million, and amortization expense is expected to be $5.0 million.

Fiscal Year 2024 Guidance
Revenue is expected to be in the range of $624.2 million to $626.0 million, representing 16% to 17% growth over 2023.
Net income per diluted share is expected to be in the range of $2.03 to $2.05, with fully diluted weighted average shares outstanding of 37.8 million shares.
Non-GAAP income per diluted share is expected to be in the range of $3.36 to $3.39.
Adjusted EBITDA is expected to be in the range of $185.5 to $187.0 million, representing 18% to 19% growth over 2023.
Non-cash, share-based compensation expense is expected to be $55.6 million, depreciation expense is expected to be $19.2 million, and amortization expense is expected to be $19.2 million.

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.

Quarterly Conference Call
To access the call, please dial 1-833-816-1382, or outside the U.S. 1-412-317-0475 at least 15 minutes prior to the 3:30 p.m. CT start time. Please ask to join the SPS Commerce Q2 2024 conference call. A live webcast of the call will also be available at http://investors.spscommerce.com under the Events and Presentations menu. The replay will also be available on our website at http://investors.spscommerce.com.

About SPS Commerce
SPS Commerce is the world’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 94 consecutive quarters of revenue growth and is headquartered in Minneapolis. For additional information, contact SPS at 866-245-8100 or visit www.spscommerce.com.

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. 

SPS-F




Use of Non-GAAP Financial Measures
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.

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.

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.
Adjusted EBITDA Measures:
Adjusted EBITDA 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 included the expense impact from disposals of certain capitalized internally developed software. Net income is the comparable GAAP measure of financial performance.
Adjusted EBITDA Margin consists of Adjusted EBITDA divided by revenue. Margin, the comparable GAAP measure of financial performance, consists of net income divided by revenue.
Non-GAAP Income Per Share Measure:
Non-GAAP income per share 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 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.
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.



Forward-Looking Statements
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 performance for the third quarter and full year of 2024, within the safe harbor provisions under The Private Securities Litigation Reform Act of 1995. These statements involve known and unknown risks, uncertainties and other factors which may cause the results of SPS Commerce to be materially different than those expressed or implied in such statements. Certain of these risk factors and others are included in documents SPS Commerce files with the Securities and Exchange Commission, including but not limited to, SPS Commerce's Annual Report on Form 10-K for the year ended December 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.



SPS COMMERCE, INC.
CONDENSED CONSOLIDATED BALANCE SHEETS
(in thousands, except shares)

June 30,
2024
December 31,
2023
ASSETS(unaudited)
Current assets
Cash and cash equivalents$240,232 $219,081 
Short-term investments31,554 56,359 
Accounts receivable59,355 50,160 
Allowance for credit losses(3,958)(3,320)
Accounts receivable, net55,397 46,840 
Deferred costs64,318 62,403 
Other assets15,437 16,758 
Total current assets406,938 401,441 
Property and equipment, net35,083 36,043 
Operating lease right-of-use assets7,076 7,862 
Goodwill268,872 249,176 
Intangible assets, net107,519 107,344 
Other assets
Deferred costs, non-current20,610 20,347 
Deferred income tax assets7,347 505 
Other assets, non-current1,076 1,126 
Total assets$854,521 $823,844 
LIABILITIES AND STOCKHOLDERS’ EQUITY
Current liabilities
Accounts payable$5,877 $7,420 
Accrued compensation32,236 41,588 
Accrued expenses9,446 8,014 
Deferred revenue76,393 69,187 
Operating lease liabilities4,594 4,460 
Total current liabilities128,546 130,669 
Other liabilities
Deferred revenue, non-current7,111 6,930 
Operating lease liabilities, non-current7,751 9,569 
Deferred income tax liabilities7,012 8,972 
Other liabilities, non-current680 229 
Total liabilities151,100 156,369 
Commitments and contingencies
Stockholders' equity
Common stock39 39 
Treasury stock(162,187)(128,892)
Additional paid-in capital574,842 537,061 
Retained earnings295,080 259,045 
Accumulated other comprehensive gain (loss)(4,353)222 
Total stockholders’ equity703,421 667,475 
Total liabilities and stockholders’ equity$854,521 $823,844 







SPS COMMERCE, INC.
CONDENSED CONSOLIDATED STATEMENTS OF INCOME
(Unaudited; in thousands, except per share amounts)

Three Months Ended
June 30,
Six Months Ended
June 30,
2024202320242023
Revenues$153,596 $130,416 $303,172 $256,284 
Cost of revenues52,018 44,544 103,505 87,508 
Gross profit101,578 85,872 199,667 168,776 
Operating expenses
Sales and marketing35,691 30,349 72,123 59,433 
Research and development14,366 13,318 30,375 25,880 
General and administrative23,516 21,693 49,423 42,369 
Amortization of intangible assets4,840 3,479 9,178 7,330 
Total operating expenses78,413 68,839 161,099 135,012 
Income from operations23,165 17,033 38,568 33,764 
Other income, net4,056 1,882 7,188 3,157 
Income before income taxes27,221 18,915 45,756 36,921 
Income tax expense9,189 4,233 9,721 6,950 
Net income$18,032 $14,682 $36,035 $29,971 
Net income per share
Basic$0.49 $0.40 $0.97 $0.82 
Diluted$0.48 $0.39 $0.96 $0.80 
Weighted average common shares used to compute net income per share
Basic37,078 36,593 37,063 36,511 
Diluted37,683 37,426 37,690 37,327 
























SPS COMMERCE, INC.
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS
(Unaudited; in thousands)

Six Months Ended
June 30,
20242023
Cash flows from operating activities
Net income$36,035 $29,971 
Reconciliation of net income to net cash provided by operating activities
Deferred income taxes(8,172)(8,654)
Depreciation and amortization of property and equipment9,377 9,289 
Amortization of intangible assets9,178 7,330 
Provision for credit losses3,646 2,491 
Stock-based compensation31,512 24,661 
Other, net(907)1,143 
Changes in assets and liabilities, net of effects of acquisitions
Accounts receivable(11,407)(9,937)
Deferred costs(1,996)(5,136)
Other assets and liabilities1,899 3,614 
Accounts payable(1,450)(4,414)
Accrued compensation(10,763)(2,910)
Accrued expenses1,489 (728)
Deferred revenue5,965 9,909 
Operating leases(900)(959)
Net cash provided by operating activities63,506 55,670 
Cash flows from investing activities
Purchases of property and equipment(8,592)(9,769)
Purchases of investments(78,994)(68,579)
Maturities of investments105,000 60,000 
Acquisition of businesses, net(29,343)— 
Net cash used in investing activities(11,929)(18,348)
Cash flows from financing activities
Repurchases of common stock(37,483)— 
Net proceeds from exercise of options to purchase common stock2,314 4,819 
Net proceeds from employee stock purchase plan activity5,219 4,136 
Net cash provided by (used in) financing activities(29,950)8,955 
Effect of foreign currency exchange rate changes(476)94 
Net increase in cash and cash equivalents21,151 46,371 
Cash and cash equivalents at beginning of period219,081 162,893 
Cash and cash equivalents at end of period$240,232 $209,264 





SPS COMMERCE, INC.
NON-GAAP RECONCILIATION
(Unaudited; in thousands, except Margin, Adjusted EBITDA Margin, and per share amounts)

Adjusted EBITDA
Three Months Ended
June 30,
Six Months Ended
June 30,
2024202320242023
Net income$18,032 $14,682 $36,035 $29,971 
Income tax expense9,189 4,233 9,721 6,950 
Depreciation and amortization of property and equipment4,683 4,663 9,377 9,289 
Amortization of intangible assets4,840 3,479 9,178 7,330 
Stock-based compensation expense11,494 12,881 31,512 24,661 
Realized gain from foreign currency on cash and investments held(1,255)(290)(1,559)(427)
Investment income(2,794)(1,611)(5,673)(2,737)
Other— 134 — 134 
Adjusted EBITDA$44,189 $38,171 $88,591 $75,171 

Adjusted EBITDA Margin
Three Months Ended
June 30,
Six Months Ended
June 30,
2024202320242023
Revenue$153,596$130,416$303,172$256,284
Net income18,03214,68236,03529,971
Margin12 %11 %12 %12 %
Adjusted EBITDA44,18938,17188,59175,171
Adjusted EBITDA Margin29 %29 %29 %29 %

Non-GAAP Income per Share
Three Months Ended
June 30,
Six Months Ended
June 30,
2024202320242023
Net income$18,032 $14,682 $36,035 $29,971 
Stock-based compensation expense11,494 12,881 31,512 24,661 
Amortization of intangible assets4,840 3,479 9,178 7,330 
Realized gain from foreign currency on cash and investments held(1,255)(290)(1,559)(427)
Other— 134 — 134 
Income tax effects of adjustments(3,066)(5,199)(12,620)(11,108)
Non-GAAP income$30,045 $25,687 $62,546 $50,561 
Shares used to compute net income and non-GAAP income per share
Basic37,078 36,593 37,063 36,511 
Diluted37,683 37,426 37,690 37,327 
Net income per share, basic$0.49 $0.40 $0.97 $0.82 
Non-GAAP adjustments to net income per share, basic0.32 0.30 0.72 0.56 
Non-GAAP income per share, basic$0.81 $0.70 $1.69 $1.38 
Net income per share, diluted$0.48 $0.39 $0.96 $0.80 
Non-GAAP adjustments to net income per share, diluted0.32 0.30 0.70 0.55 
Non-GAAP income per share, diluted$0.80 $0.69 $1.66 $1.35 


EX-101.SCH 3 spsc-20240725.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0000001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink EX-101.LAB 4 spsc-20240725_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Security Exchange Name Security Exchange Name Title of 12(b) Security Title of 12(b) Security Written Communications Written Communications Local Phone Number Local Phone Number Trading Symbol Trading Symbol Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Entity Address, State or Province Entity Address, State or Province Pre-commencement Issuer Tender Offer Pre-commencement Issuer Tender Offer Document Period End Date Document Period End Date Cover [Abstract] Entity Emerging Growth Company Entity Emerging Growth Company Pre-commencement Tender Offer Pre-commencement Tender Offer Soliciting Material Soliciting Material City Area Code City Area Code Entity Address, Postal Zip Code Entity Address, Postal Zip Code Document Type Document Type Entity Central Index Key Entity Central Index Key Amendment Flag Amendment Flag Entity File Number Entity File Number Entity Address, City or Town Entity Address, City or Town Entity Tax Identification Number Entity Tax Identification Number Entity Address, Address Line One Entity Address, Address Line One Entity Address, Address Line Two Entity Address, Address Line Two Entity Registrant Name Entity Registrant Name EX-101.PRE 5 spsc-20240725_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT GRAPHIC 6 datasheetsimage.jpg begin 644 datasheetsimage.jpg M_]C_X 02D9)1@ ! 0$ 9 !D #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" !( 00# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4ZJZIJEG MHNGSWVH7,5G9P+OEGG<*B+ZDFEU+4;;1]/N;Z]G2VM+>-I99I#A451DD_A7S M)8#5/VLO&TLUP;C3OAMI,V%MU8HUW(.@)'\1&"?[BG Y;)]7 X'ZRI5:LN6G M#XG^27=OH?/YKFOU%PP]"'/7J:1C^L*R6R?[B]2>^#D\\KBMJT^!5SK($WC/QGKGB.=N6MK>X-G:#/4"./' MTSD?2NWU#5/#7PM\+QO=36>@:+:*(XUP$4=PJJ.68\G !)YKQKQ-^VIX5TW? M'HNEW^M2+TDDQ;1-]"6[45Z4UNO.2DV>V>$_!FC>!M,;3]#L5L+1I#,R!V W,_\ X]E3_P!\5F_\(/\ &_XK?\?Z M:TUK)]Y=2G^R0X]?*8KG\%-=;X>='C;!66'R?"SK6T M2C&T?U:_\!/L^Z\;>';&8PW.OZ7;RCK'+>1JP_ M6I:W<%];I/;31W$+C*R1 M,&5OH1UKXZL?V(_$\UN&N]>TJVF//EQB20#\=H_E7+:Y\/\ XF?LXW0U>TNI M(;'> U]ILIDMF.>%E0@>WWEQGH:<5Q3XKS?!+V^8 M9;*-+JU*[2[M6_.Q]Z45Y)\!?CW9_%W3Y+2ZBCL/$5J@:>V4_)*O3S(\\XSU M';(Y.:];KY/%86K@ZKH5XVDC]#P&/P^9X>.*PLN:$OZL^S04445RGH!1110 M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?-'[6?C M6]U;4-$^&^BMNN]4ECDNE4_>W/MBC..Q;+'Z+7NG@SPKIOPU\%V6DVNV*ST^ M#,LQ&-[ 9DD;W)R:^9_AO-_PLK]KO6-7D^>#36N)HU;ILB MXS^;*WUKZOUC M3(M:TB^TZLG)TX7Z0AV[_537@^H?LD_$33 M]72,=_5M._JF?E5'$8G*E4QV M;Y6ZM1SO*I4VUV44XM>C5UMTL?HCHOAO2/#<'DZ3I=GID6,;+2!8@?\ OD"M M*O@O3/&OQG^,$)M=*O\ 5[^WA"PNUCMMHP<='D7:"3U.YN]52HZ5;%1]J^F[_ !:?X'W% M3CV%&@J^%P$W06G,_=BO2R:_%'Z05#=VD%_:RVUS#'<6\RE)(I5#*ZD8((/4 M&N-^#_CB7QM\*]#\1:FT<$\\+"XD)"INCD:-F]!DIG\:I^)OV@OA_P"%=ZW7 MB6TN)EX\FQ)N6SZ?(" ?J17R'U+$^VE0IP%'+J.7_:V#Y)5')I*WV97]YV5HVN[O:R.\HKSW2?BYG6M/TKQ%X:U M7PM".2WFDQD1B1&(#D9P"!G%+J7Q8GDU^_TCPWX6U/Q/-ITGDWE MQ;O%!;Q28!,8DD8!G (R!TR*/J.(YN7EZ7O=6MMO>V^FX_[6P?)S\_6UK2YK MVO;EMS;:[;:GH-%^UNM]C8HKS%_C1>6<(OK_ , ^)K'1N";QX(W>-3_$\*N7 M4#J>"1Z5O^+/B;IOA:2PM4M;[5]8U!/-M=*T^ M<.G=V5L!%'Z:>NUDTF[O16O=['7T5YW8_& 6VJ M65AXG\.:IX3>^<16MU>^7+;22'[L9EC8A7/8-CH>:G\7_O!/CK1/#>I0R MQC5(]ZWV1Y4)+;%#^@+8&>@W"CZCB'/D4+MIO2SNEO9K1_(/[6P2INK*I9)J M+NFFF]DTTFK^:7<[VBL?Q=XJL/!/AN^UK4Y/+M+2,NV/O.>BHH[LQP![FN'O M/CO8V?PET_QV=)NY+6\F$*V*,IE!,C1]>AY7]:FE@Z]>*E3C=-\J]7T-,1F6 M$PLY0K5$G&+FUVBG9O[SU"BL[0=?L?$NAV>KZ=<+<6%W$)HI1T*D=_0CH1V( M(KCO _QHTGQ_>>+$TNWF>UT':?M3$;+H,)/FC]LQ-@GKD5$<-6DIR47:&_E= MV_,TGCL-3E3A*HKU+\OG9%;Y]6UFY:UCTE9XO-C]=$LOQ$9JFTK[6YH].^NFW4XHYS@ITW54GRI)WY)I6;25KQUO=62NV>B4 M5YF/C--I$UN?%/A#6/#%E/,L(U&UK-:;ZK33KVZF\ MZ::OMHTGKTTU>B.KHK@-%^*ES<:S9Z;K7A'7/#\EZ_EVUQ- M$L\#-C(5GB9MAP"?F&.#SQ6=_P +BU>^U;6;31O NI:S!I=])I\MU!=0(ID3 M!( 9@>C*?QJU@,0VU9::WO&W;>]OQ,GF^#C%2YGJ[6Y97O:_PVNM-=4>H45R M.@^,-6\\'7^E2K(5$,UQ"Y(P#NRK8QR1^%%<\L/.+L[?>O\SLAC*52* ME&]G_=DOS1\Q?L=7!D^,'B$S'$\FG3$YZD_:(B:^COBW\8]%^$.D0W6I"2ZO M+DL+6QA^_+C&XY/"J,C)/KP#7RO\.;A_A1^U$]A=CRH'U";3VSQF.8GRF^A) MC;Z5]5>-?@KX6^(GB*UUCQ!:S:A+;6XMX[1P MW]I4\1BKNE*">F[\OR^1^6<*3QW]AU\'@.58BG4E'WME=J[>C\[:;H^:O$/[ M9GB_6Y?L^@:39:3YAPGRM=3Y[8)PI_[XKSSXB>%/'5YI \;^-/M$;7EPEI#] MO^2>3*LPVQX&Q %/8F*?OR7%PZ_[H15/_CS?E7=E.:8>IC:>&P&'4$[W;UE9*_Z=V>5 MQ'D&-HY76QV;XV564;6BM("?@_EI>:C+* M'NYECW*JH@ R>>5;IZUX[^TY\9+'XJ>(K"UT;=)H^EK(L=PZ%3/(Y&Y@#R%P MJ@9YZU9^'?[)?B7QQI-AJ]SJ%EI&EWD:S1LVZ68HPR&V 'EAO98:*BFV[REK=.W1-Z[=M2?P;\#?B1\4="TZ2, M/!H*+BSDU2Z*0JN24K M>QD8DD'V /O7E/\ PU5\0H]%M+&PN+'3H+.%(!+;62D[5&%SOW*.!V %>^?L MP_'+5OB@FIZ5KXCFU*QC29+N&,)YT9.#N4G'/)FU3.\/0G7BXP@ MGM'>S>^J_(]'AVCPKC,52PLXU*M5K1S^%M+9)/RT3372YWOQ*97!C9<\9W <=\X[UTE87C3P7I7C_ $";2-8A:6UD M8.K1L4DBD'W71AT8?_6.02*^9P\_9U8SMO6QPVL7_Q+^'VD76IW-SH?B_2M/B:XN-T+V-XT2#+%2"T9( )Q@9_2L/Q M;XV*?%+P)X@TO1[_ %R.]T&XFBM;)5\[9(8F#$,P' (SSWK>E^"-_J5L=.UC MQ]XAU70F^62QD:-&F3^Y)*J[F!'!Z9KKSX#L%\5:/K<+26[Z78R6$%K'@1"- MMOMGC8 .:]U8G"TGS.TI6DG9.*:<;)-::W[)>KZ?)/ YA7BX1YH03IM*4E.2 M<97;3][2W23=WT77A=9F\1_%J\T*P/A.^\-Z59:G!J-W?:K)&'(A;:W_ ,%Q;:U?:GX7\3:IX3DOY3/=VMGLDMI9#UD$;@A6/M^NQH>!?' M&KZGXAU7PSXETZUL==T^&.Y\RPE,EM9_J_M7D?Z-GMG=NV]\UU'@?X>VO@N2^NVO[W6=8U J;O4]0D#R MR!0=J@ *@R<*!W[UI>+O".E>.-#GTG6+;[39RX;@E61A]UU8Y:SMYQLVD_-W2;^XWEA,9B,N]E5=ZBDI*[Z1FI1C)I6U249-+[^NS7 MEG@PI_POSXB"\Q]N^R:?]BW_ 'OLOEG?L_V?-ZXXSBE_X4?=7$*V-]X^\47V MBC -E)+OA;I?BQM/N5NK_ $?5].3RK35=.N"E MRB?W&9L[U/<-G//J:=/ZO0YZ?M+J:M=)Z:IK?TL[=.XJZQN*]G6]ARNE)22< ME[WNRBUI=*W-=-O5K5++OB=HNC>(8?M*WG@J2*\1NN_P ^+)!/1@W(/8@5U&G_ 9CFU>RU'Q+ MXCU;Q;)8R>;:VU^R);12#[LGE(H#..Q.>IXKJ)O!]M-XYM_%!FE%Y#I[Z>(> M/+*-(KECQG.5'>MZ>*I86FJ5.=VN9W5UJTDK=>FKT_ Y*^ Q&85G7K4U%-P7 M*VFW&,FVY6T^U9*[ZZZV7F_A7P'XKU[Q!86/C1UN=!\*/_H,F:X_2O^3EWJ M7T4QV^8[+,90&XQC+8X'2M*69*5G5TM*+LEIHIW?S\FX M5(MR>MVZ?*K]E&+7RN]6V^.USX;>)M-U>]\*>&W^R^"/$RY;CO5CPGI-IH/CKXKZ=80):V5KI6F10PQCA5%M, *]GKFK;P+:6W MB#Q1JRW$QFU^"""=#C;&(D=%*\=2'.?9)+RKX1Z;\2Y?AGX;?2M:\.P:=>,/%'B?XJ2W/PWN_"\?A.ZOXHYI[B_U".8_9 MA("[0A%(D;Y<<'C/..HZ;PPL,7[07BZ*\_X_%TBQ&F^8VD'4J2"""."I!!';I53QK\,]-\^668R%9XAR]K.,HM.32YHI37*U%))QYY-.UF[7:Z=?7@G@.Q\<7. MN?$!O#.J:-96 \3W8>/4;2260R;(LD%6 QC;QZ@UW.B_"6:UUJSU+6O%VN^( MI+%_,M;>YG6*!& P&9(P-[ <]TSQKKVC)J=[)?S6MF MT0C$KX!(RA/10.O:HPT\/AU4IJHGS):N+:W[6O\ @C3'4L9C)4:KHRCRMZ*: M4K.-KW32WZ)L['PA;^(K;395\37EA>WYF)233H6BC$>U< AB3G.[GT(HKG+/ MX8ZK:QE'\?>(K@DYW2/#GZ<)17%4IT9R&?ME?#6:VU"R\C['V6M\8PPL1NDP,"9?4-W]#D>F?3-4TNTUO3;G3[^W2ZLKF-HIH9! ME74C!!KXU^(W[.?BWX4>(%U_P/)>ZA81.9(I+/F[M?\ 991RZX[@$$9R!W^F MP=;#YO@XY?BI\E2'P2>UNS_KMVU^$S/#8WAS,YYS@*;J4:O\6"W3_F7Y_??1 MW7VI7@'QO^!>N_&+XG:/+YL>G^&K.R6.:[9PTC.9'+JB#G.-G)P/KC%>6:/^ MVAXPTNU-MJFDZ=J-S'\IF97A?][>?R KHP60YK@*SJT^6+2:YF]%?JO^"CCS3B[A[-\*L/652:;3Y(QL MW;6SZ6[V?S/M2SM;70]+@M80EM96D*Q1J3A8XU &3V KA/&?QH^&^DVLMI MK6NZ9?H>'LXP+S)'8J@8 _6OE^/X'_&/XG2++K1O%B8Y$FN7Q"K_ -L\LR_@ MM=UX;_8>^Z_B#Q-_O0:;!_*1_P#XBN;^R\LPKYL7C+OM#5_?K^2.W^W\^S"/ ML\MRWECWJ.RM_A]W3T;,WXH?M0>'M4\':CX7\&^'WMX;^,V[SS0I#&JMP2D: M9R2. 3C'I7I/[*7PEN_A_P"%[O5]7@:VU;5]A%O(N'@A7.T-Z,Q))'LN>176 M^!/V>_!'P]N8[NPTK[7J$9!2\U!O.D0CNH(VJ?=0#6+\:_C@/"1'ACPNAU?Q MK??N8;:W'F?92?XG _BQR%_$\=2IBJ>+I_V;E4&HR=Y2D]7;J^R77^KNA@*V M75EGG$-6+G!9>R M+RD2?![X2S_ M @T"?6+Y(]6\7ZM+&MY-+,0(_,D V!]K$_,P9CW(]A7I?AOQ,?$)E!T^YL- MD44P^T8^15NTL[>PA$5M!';Q#D1PH%7\A115N1\;Q)F^) MRV5"EA[+VC:;:NU:VW3KU3,6^D^+7Q.4V]M:VWPWT63A[B:47&H,O?:%X0^W MRD>M=?\ #3X,^'?A?#))80O>:M/DW&JWA#W$I)R>?X03V'7OD\T45PU\=4<7 MAZ:4(=H]?5N[?S9ZV$RFA&I'&5VZM6VDIN]K_P J248_))]V=W1117E'T 44 M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111 $0!__V0$! end XML 8 R1.htm IDEA: XBRL DOCUMENT v3.24.2
Cover
Jul. 25, 2024
Cover [Abstract]  
Document Type 8-K/A
Document Period End Date Jul. 25, 2024
Entity Registrant Name SPS COMMERCE, INC.
Entity Incorporation, State or Country Code DE
Entity File Number 001-34702
Entity Tax Identification Number 41-2015127
Entity Address, Postal Zip Code 55402
Entity Address, Address Line One 333 South Seventh Street
Entity Address, Address Line Two Suite 1000
Entity Address, State or Province MN
Entity Address, City or Town Minneapolis
City Area Code 612
Local Phone Number 435-9400
Written Communications false
Soliciting Material false
Pre-commencement Tender Offer false
Pre-commencement Issuer Tender Offer false
Title of 12(b) Security Common stock, par value $0.001 per share
Trading Symbol SPSC
Security Exchange Name NASDAQ
Entity Emerging Growth Company false
Amendment Flag false
Entity Central Index Key 0001092699
EXCEL 9 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( ! _^E@'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 #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " 0/_I8B_X.?^X K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)OIVFU0NCFHGA2$%Q0O(5D=C?8I"$9:??M;>-N%]$'\)B9/]]\ M ]/I(/00\3D. 2-93%>3ZWT2.FS8@2@(@*0/Z%0JYX2?F[LA.D7S,^XA*/VA M]@AU5;7@D)11I& !%F$E,MD9+71$14,\X8U>\>$S]AEF-&"/#CTEX"4')I>) MX3CU'5P "XPPNO1=0+,2<_5/;.X .R6G9-?4.([EV.3?)K\W=_?:!R;JJKXOJMJC;+>?BIA5-_;ZX_O"["+O!V)W] MQ\9G0=G!K[N07U!+ P04 " 0/_I8F5R<(Q & "<)P $P 'AL+W1H M96UE+W1H96UE,2YX;6SM6EMSVC@4?N^OT'AG]FT+QC:!MK03621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M ! _^EAL*A%G7@0 "81 8 >&PO=V]R:W-H965T&UL MG9AO<^(V$,:_BL;M=-J9)/Z#(2$%9@@A5WI'0@/MS;33%\(6H#E;L[OO/^X)6O-\8^< >]C*[9G)E?LYF"EENJQ#QE0G,IB&*KOC/T[Q^"M@TH MWOB-LYT^N2>V*TLIO]C&).X[GB5B"8N,E:!PV;(12Q*K!!Q_'46=\C=MX.G] MN_I3T7GHS))J-I+)9QZ;3=^Y$'XSW 7 M"$J,H,0("KT6AD'^&"ZU49"H/^N(#@IAO8*=O?#\B?*V2KX6I#QYEE,-<-&2QSU@='!Y^=_W1'2(888D17H8Q8XK+F(Q%3"#M MM42X4IG I@RV2[0V*C@6AIL]>65K;G,(C,\TK07#=>:S.1F]3*?CU]'XBDR> M1S<(7*>$ZUP"-Q&15)E4U!K"%9D;&#HB%1G)7!BUAVM<2XR+/XX1PMN2\/82 MPB>>,/*)Y_W0IOO0#AN2MY[B[A6= W,HEAQO$5CXIA0^APQ="_ M#CR_[0>W"%ZWQ.M>@C>,8UCK^HK,I#8T(;_S[&P2<<%V.T3'S?#X&.]) ?#_/^]B)VMY< M<7*61IRH!/N[8,\6N(Q@>!DOLL/EA(H9MVLMJ=29_N%XC M6>7^/N[67Y%-M,Z!K!$0EVT"#*HB$.".O> &"KE<$3_X?OD#V':4PWS;UVYK M<24[/Z'JPD$@^G)%,JK(EB8Y(]]Z-U#O20;=U1NJ4.RJ%@2X<2\4C>WTF^_3 MI:R=? T"L'L;820GYP'2@/'ZN)VPR@8AGT!OE]):=X;]FQ=_C4R^!M02P,$% M @ $#_Z6)^@&_"Q @ X@P T !X;"]S='EL97,N>&ULW5=M:]LP$/XK M0C]@;F)JXI$8MD!AL(U"\V%?E5AV!'KQ9+ES^NNGLVPG:75EW8>QS:')W3VZ MNT=W)YFN6W>2_.'(N2.]DKK=T*-SS?LD:0]'KEC[SC1<>Z0R5C'G55LG;6,Y M*UMP4C)9WMQDB6)"TV*M.W6G7$L.IM-N0V]H4JPKH\^6E :#7\H4)X],;NB6 M2;&W8EC+E)"G8%Z"X6"DL<1Y*GQ#%V!IGP*\"!JP'.,HH8T%8Q(RA._]N/P9 M,&FM5X64,\$E#89BW3#GN-5W7AD6#\87$!GEW:GQ#&O+3HOE+3T[##\^R=[8 MDMLYS8).IF(M>05TK*B/\.M,DP#HG%%>* 6KC68#A\EC%'S8 Y?R 5KXK;J* MW5B'_2^FO-CT1=X=-8T\O1!BEHK'O;^RPF+-9O\R-%8\>2SP:0)P:?EA6;/CO9NFJ:]PSLM_D/.?K7/--;=,7I+VH_\W5_DMC)/Q]%PZC+N.HL?X;[:)'-M[#/)73)>UYN1]76^T$D7O!9QP<&%Y_J?]K-#]! SCMHHB*]1GA?H$KQBR'3Y8GKA/ M[I_X3O,\3;,,J^AV&V6PQ>J69? 7CX9Q P\L#V1Z6ZWQ;N,3\OH<8#U];4*P MG>*3B.T4KS4@\;J!1Y['NXWE 0^L"]CL0/YX'IBIN$^:0ERHY M_U=3_ 102P,$% @ $#_Z6)>*NQS $P( L !?3T\ M$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5* M(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'B4?'D78FYJD6:>IK&HP=MX1PT$G53$ MWHI"/J:Q8;!EK '$NW2:9;/46PQFN1BUMIS> A(H!"DHV1%[A$O\G7D(GP&LK\,S4-AB.G8RF2&]B M]#V,YU#BG/]3(U45%K"FHO409.B1P74&0ZRQB28)UD-N5G0&[O+H YMRR"9J MZJ8IGJ,.>%,.]D9/)508H'Q3F:B\]E-L.>F.7F=Z_S!YU!Y:YU;*O8=7LN48 MY0]02P,$% @ $#_Z6"0>FZ*M ^ $ !H !X;"]?+7_OR4Z?:!1W;J"V\R1&:P;*9,OL[P"D6[2*+L[C,$]J M%ZSB688&O-*]:A"2*+I!V#-DGNZ9HIP\_D-T==UI?#C]LCCP#S"\7>BI160I M2A4:Y$S":+8VP5+BRTR6HJ@R&8HJEG!:(.+)(&UI5GVP3TZTYWD7-_=%KLWC M":[?#'!X=/X!4$L#!!0 ( ! _^EAED'F2&0$ ,\# 3 6T-O;G1E M;G1?5'EP97-=+GAM;*V334[#,!"%KQ)E6R4N+%B@IAM@"UUP 6-/&JO^DV=: MTMLS3MI*H!(5A4VL>-Z\SYZ7K-Z/$;#HG?78E!U1?!0"50=.8ATB>*ZT(3E) M_)JV(DJUDUL0]\OE@U#!$WBJ*'N4Z]4SM')OJ7CI>1M-\$V9P&)9/(W"S&I* M&:,U2A+7Q<'K'Y3J1*BY<]!@9R(N6%"*JX1<^1UPZGL[0$I&0[&1B5ZE8Y7H MK4 Z6L!ZVN+*&4/;&@4ZJ+WCEAIC JFQ R!GZ]%T,4TFGC",S[O9_,%F"LC* M30H1.;$$?\>=(\G=560C2&2FKW@ALO7L^T%.6X.^D&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0 ( M ! _^EAL*A%G7@0 "81 8 " @0T( !X;"]W;W)K&PO&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4 M " 0/_I899!YDAD! #/ P $P @ &K$@ 6T-O;G1E C;G1?5'EP97-=+GAM;%!+!08 "0 ) #X" #U$P ! end XML 10 Show.js IDEA: XBRL DOCUMENT // 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)}}} XML 11 report.css IDEA: XBRL DOCUMENT /* 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; } XML 13 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.2 html 1 23 1 false 0 0 false 0 false false R1.htm 0000001 - Document - Cover Sheet http://www.spscommerce.com/role/Cover Cover Cover 1 false false All Reports Book All Reports spsc-20240725.htm spsc-20240725.xsd spsc-20240725_lab.xml spsc-20240725_pre.xml http://xbrl.sec.gov/dei/2023 true false JSON 16 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "spsc-20240725.htm": { "nsprefix": "spsc", "nsuri": "http://www.spscommerce.com/20240725", "dts": { "inline": { "local": [ "spsc-20240725.htm" ] }, "schema": { "local": [ "spsc-20240725.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-20240725_lab.xml" ] }, "presentationLink": { "local": [ "spsc-20240725_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-20240725.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-20240725.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" } } } ZIP 17 0001092699-24-000062-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001092699-24-000062-xbrl.zip M4$L#!!0 ( ! _^EBN@J6G^3( N0 P 5 97)?<3(R-"UC;W)R96-T M960N:'1M[3W95N-\^87_N\WO[!)WO23X/'MFR"\5\+@UU>AI;L#V_)M%0>JZ3@>#OJF M,0A\C#V-J/K@/]HK^!1>Y]]D^6-$?GTU"N.3(:'SGQKV.#]["(-\>*JIZ@^O MYM_#Z1V\VD_R/!F=JCW5'>?P1CBZ4W"4__HJP#G.AH3D63C"=Z3WW_'=*R5+ M_>>>\%'+F1U]_/5L?@8+UG)/TCST<72"H_ N/LW)U[Q\7"Y3M]7QU\FNGNR- M?<"_92<,;PX2@$?YV$^B)#W]3F7_G=$G)P,\"J/'TY\NX*M^&OZ$,AQG)QE) MPP%_(0N_D5--A\6Q?SZ4ZX?OHS FU4EJN@7'=_EU&/;#7/&\-[_0MY>=/M]S MGHSA2#48=6=+UA:6;"XNF4'\ M[ ?O[C=Y9[]M*BYU"AQ86SL[Z*[TF6)ZGR MB40X#Y,X>W;Y+:_T\Y HOT4%R89AFBM_I$DQ%G6I5REP!PRKQ=DW_]OC%^7' M[PSW3'D?9EAYCXLO7W!,8E$7?_OQ]N+'[VSSK%\=]AT]ZYZ?C$1=LJE9)[KF MG)B>K6^%^D!&I&^?CK2>N#"7BHL79O=!3I%T^^?&1CH-WOP."QWZ((W@K*Z)\+;:Q]TT^01>V M2=C@&,>/2D"B$$1EIGAF/E1@CQGQBQQ^I?Q=;C49*"!BZ @*$,%#/FR,78)L M_1.Y)W%!% SP3&&W:4HUJ[3\+=\CW;7F_J \$IR>)'! )_2GKN_\/(Z3(O9) MIL3D0;D=XI0A>)'Z0YP1Y6.:W*7X*8=;R0]6JWC[Y( ?KJZO+\\_WKR_ND7* M/XOH\FBA'*6Y&(]XE^BW3V#FU!P#-E*F0IP7L)Z5OO7H[E1/_ M@/)ZKR5-_Z=2O20ZH#G10D8_;4RZ )5QG#80=A5%#?648UG7G2B:># M $B^U\R>LS"&X3T=8S6)2:!N -0D/OGC_/QC!92G1\]@K?9<=0&0+WY(X:OV M;.\%X$E&V!QZY\%_BXR>^.5O5Y_?G2]HMXM"C((J)6!Q!(IF_\ $F6GV] G] MS8*W";4MM<8D$%\"(K<'TXD]F*U610 Z8%@ E+[7G)Y5 6\9&:WG,G)>K6ER M[N^HU I*ZMEYQHZB-/X :P#?TT?J, &%JH"S EPE]TET#W*&&I5AIA1Q^'=! MP$8<)UE(;0*.T4,2C;GU&)(4;,4(L)4[([(1CB($W.L.7O]&Z(0AT%&**; 4 M((D\AN.'*6.JQB4QFQ3[PQ"4#X4,!J$?$M#183%L-!]'N!]&8?Z(V":T,R7# M8:!<##'\D0"X8IC^XO*&0G36$.XI2KEKZF\>A5D&DYWX:<@"*DJ,\X*SU:1( ME2P!7LL6,X#-9LR%% (O @%9$070ID!?7.<)D'AYPIUJ T20!;$UOE 3W7$ MK.@D'H24'"O$JWPQ8_H)'&<.-C4-7]&Y"]AEII 3O_+4T;&241P"[L(!116H M*@C1LZ+C]9JVQ@[,*X4]3%E"Y)V?4)#\Q>NZ2R%P?6 VWDZ>NQ7V>]G-.SWF'X#P) M_2L<*=> [4D,!/3["@+ZQ)$P>(QAR7XVAXWCB/J(E"_D44F3:*);DJ]CV W3 M0SF% ;-.29;A/KP#HNT+R;,)Y?3AZ"CUT_?Z0._,VU22#1X#Q0%[H+R(\2X6 M* ;DP3FY>Z0KF-)J-/$$*W1B&"VFGD\XBA&;*@*$X_^:NK)RRKCRK!%!K1MU M5E^.([SH^.EC_PL-W\3!28E+ _;?67L>H;5=KX*X5]4R]EA%#3"@_HQ[D[L[ M\R'.&:+]EN"4\>AW80J2*DFS10)1<)$/DQ1FI_R,.J/'_ H5DXU$*48' MJLZ:> .J(8[@IRQ/_"\]Y4]ZL&SF\4_9W":1ZJFE4F^>04#J',\+3=P:8 8;O(%O0_";0Z!-J4V54 MN: J!V4TL7)>W('RHU"7$G=)T?& :X5TP_"RCO\G&Q ]!LWH*6G[^#+FR EYC_NN$&I]9Q>4!N7,V M"L.UAQ V5- ]AO :K"&DDF*6K*AB9C@SVRJG8H(@SW*8DF+:+&)0)0@>4[^Y M,G&9SPT:QL#@ X:*G'?S+3\+<[I,QM:4-<9$U@S3J>E_1T[Z8*Q^.<$#0+)3'#W@QVQA M=9NE0:WEY]IR9H)'3%NRW.EOMNK6 ME("K$9M8$CQX&9IJS](9$.$'T*^8+!X4$37/RJ'XFJAJ <8:2*>)CC"C(,!( MH$9X"VJ$1 7!(AIKX8-KE/C@KDB%D/#;?4QC#6B9]@S1L;"&,PTK2NCMF_JH M$8,XK9UP@YM&EDB<,<6403/.EI'A]YHVE:!("0B8I7[XXEG;2R=N[42DOBVVOFWKLZ%J MRN1MW9[2+TVS FZ1D9@E6K6145G&U#7G!X$.'BS)*IIWSW,*MYMQ(7%\UZ:) MWE.Y*@H_6!N:)JXT3=I6CC8V38R>83-\@!\\"4#1;1/-M7H6]P^YSK/RBJ:N M4MGA_2#9=?LTVMR L:PF!HSF356;>A;,[)N/!CD<6#\ZR8C3F$=Q32:B&'97^+D(68?%C'_ M.0VS+UGY&Y^D.0Z!*$F9[(']O)BI'Z*1QWNP'@QR>#_M- ITE=2N8 M%KLEL1]&)2*4 >?%/4T2:J>9'M4V:6S_+$FW3,HN M3)R(SY(IY@X--* 5+E9DWW PN'==/1*A2"LPF3@"5? M/@Q#?ZAD!:R>G3O Z* SY+!!U'-$D:D [P1#MQ#>/$U>P3S7!UEH%" MU>HPX-'\/WNW/7C'U/030W-. '06S3V@ ^2*1K-SXX(F1_#<@Q+-#5;C:*C* MN#?J*1>?8:]P."Q9H:=\Y)/C[ M]_;])J5#,9?'\6^>9P/[T*.G*>ULV>Q<[ M9BP_P7W;VFS2;YF('[Q^],A_\1EFTOLEXVSJHTVMD6!_L\2"XYV>E=W@.KY7+P(Y==9=[2 MB,1%KQ74:@6W/K-\)6LO7MT0?W88<]#HM!\_[5!&: MY>8M)KU;BUTWRHSEAR2-@DG2("W!Y[66+*\A?_!M1%A3:F.@E28/[Q MY(5A..8Z)NAN<7+/LN#*U@ Y\83Q@&EGD^U M@)!IIF!D4?5=!O(EAD7"ORD'>"C3;JG*#^PAR\$.2.CZ0/4$ZXWJ M!_ ZV# ( ,'A8Y$_;M%U;H)^;#Q\N/UU:ORT\*]?71).(G&=IE,PS>(X6"O@+!1-O\B%F1#WWC,Y =H<,H-]0^ M@H\Q+1C@M,"SD>G8;"+ "VK/\$FI/5.)M9EIJ')+OWH(>5YJSGT-E$K98#X0 M-> IH;4'M%=$AV%V\OOVG24'E9:KZX>5EMN>R/^3I\]/G/_3EAX?2J>*T.ZW MA,LCPBH:F#Q,J'^9>T5CP-0P8&4:4]\*F+,Y>SU#M%8*&,D]M9/DS=RA4\AD:P"2%=ZQ"G=>%CM3M\D<,SCGSD7JJ:F< M@:R@GL(!CAA'CUGI<@;C,(Z9PENDP+8I8BT)#3$)6U!"H<-4K])) L(+9^@0 MY&NEF+'J81+3^6=V!QA/@T14^9L)0BQ@\DM[IYLN$9C6+L<3?"S5R$?V!G!J M6GO%E@QX2>YQ5'#<*S&*[GAZ;$\W37>PG(RK%;#(1;FLY:-.O,6<4.C[W G+ M_+&PW+FHRF*P!)6,@*KJS$\/;Q,> B_&]'V?*3$\B #S!-,80C])OBATRXQ= M8[ 0JH)/6C0Z\>;#XBG.$.OG%Y$S W!' 0N:],FD:(Z7 M7!=]L'YR4(8H#3'W*T@C4GI3T;+1?!SY181+Q97".PTF>,7"&BQ@\\*:&.2" M^8C#V7GA-G@$^,^+S!)YDE].1 TV3F/35562I@Q M6F%RBWJRU[;L6M;@G@;W*^VL3F/EIYMXV@!EK_2WTA,9JJ"^89*NJ9]0*FWB;)]]-"*UL5\"3 G@@DRTX"#-0,4#M8.*FU"Y+LP$4^,"/QIBQA3B5H1B@L(- 92BEUFM8)9G%9 M<-IAP$50Z=CK3:RH)M!$SY'GLHG6!_R>^?K$\+[BB_](W6(LVZ[D\&LQ>/'9 M^;+L0F8CMXZGSS'VE[GSTCPH9A%S2P(8&H[OF->^4MBWQ]";<>[99)W=,&HT M,1P #6#F<<(-'"H@^2Q9%1&?7?Q<]T4T2\,LYK.81/RD\<*T_P>=?I*WRKHA MS*8:!P5KS4EH"QQN1\])EMD3D>KL'#2S(,;\A2 S*BKAI@8 M)#/HRK/J:.)7F>'2)_D#(:6)\=(2Z4)F>>'LL])"H:WA@]+],?<:6WNU]*5+ M.Y((@"4C %MJ1%ZF>KXO4SUO)S:^ $K3+!KR+&C(XKO49;V0O#KK\I^* MOUE?.6:)#U._YD^9PGP4"_'/GV@_0^8U]+VF">4G\S-1UPH= M;M:]/AF'^5=IQ)[GBK*>;:63O_[CBB?R(4'Y1S+D,TS[,J?^., M:Z]*3'\F&1W-9Z+/^!'*_F&EHYB1)$O'YL@ZB0#-9?5P3^0T87TB57.>HY+3 MI!)*;RE/BZ$NEQ%MD\I<>LSM/EUZ3[DH]54N(:D^#DMN!8^JPY@<3_;$(1F4 M]_!E\TD=2^HOV[#.,IL^,#+JK&8^6&:'H$4> M=A['!;N?B"4M 5;\3G%"4T_^-:%+1H"\>]D[L"FHP*&A\N8 3&, - ,Q M8XYP\G=!89:65R/1/01U]E#YE"I42^B/93(]4\ GYTD#5S[S)+.LHPIU0 FB M=Q:1J7X7/\.\2U3D2MSSPN(%WW&9)A/0C$O:F6ZB4%*GN4(]X@X0(CGU\04B)J3K&!:-W"/>W2.Q>RH48=3YPJT?V<11!@W30EZS$I M9L,5()5\5GQ2,*LTY"/$)5T\O^\>2P*(Z(ASJR]ID)%HYD/N\,OIM\U;)YH7U[^0YV M<7U[\_[JW?EG^,=OY^_/KR\NE=M_7%Y^OA5U2\O-_]>,UR8%C!$ ;8,U3\9Y MZ13Y>6_Y(ESB3%A "LH55?HB/,[(:?7#&7641?CQ-(S9/MA'32Z=99UL.0'F ML-8\J&8N'_?8HU_RX.DSA[8$X[K-AIV]3/#-7>R6&^] M!?W"SI>?,8 Q&^/XUU?&JRD#9;ZO4U71&!I4XZUX51]_5;1E=/.DHSF#^+:H MR>TM]EQ?'EZH6L!2(I@U;-;8V>$<0J7!*J"\E@=AS!W$"VCQU/+S?0):YEE' M]G]^>SLK!YZ'Y[,;+5D@$]R4'=/4$(6N6+PC6&Z,O2YB#/81&$0_*YL<1 WB MV. PYT:OC9RE6V(%9*AO7PRX7+!@5U[&QQI!9F&[C2"SZS&VQ& 4]K8AU=7:P[,MR5;!^?+M,$ES?E'/3![)L\)6K[?_I80C$)*! MTF]99DT<6P'G7?&R=760 P./92/#\MH#SW&H9N>\LH3EIA!0R_H1:43_ZPI. MD1#, P2S.J_+'"QX5 20.1 5P!.6_J,H>9AD7O@TK)JSW%-R-'K :P-YEONS M5 %$A(RAJZU 9IO27W>%I?ZGTA_1[.1-5( 9+Z;:2:#56,?8#W.+P0[\B I"DKILF.Q_M@F\C07.E] M$!4\.C)50WH?=GO*9;7PZAC?@=FUFH5,HZ%.T5&=H5/@L9%CU>7+@KH=Q#4\ M/B>TIXR_7I!_#=&R7AZ*Z+AGJC;RC(9*P=JI.%U1%PX%IAHRS;JAS+W = ?9 M;>)PF(\I[=-57LE 4T[&O-7=AMZ-+J&>82'5K:O#2DUC;^"QD6JV")Z#SA^\ MF33IXS59[#Q.DL%)D9$MZ!M=PC,'J8XM'0W"0L>UZR;4B>=G$),)_)$D ;T, MXU@$OFZ[R'6ZGYYYL/ Q/:35YL52Y*]WNE=/NVHU5?8[*$_>7K!V!SY_D7I8O;\Z_^WJ_=7GJ\M;Y?SZG7+[^>;B7_^X>?_N M\M-M>1FX*13?G6UA88L]T"JM\1G -75 MTL?BCO>0:4IWO*C0<9&J=3^_2G#2GT3ERQMTCT7N.S8R/%E+)2IX; ]I;HNY M$L+JM;QKAV8D#&1YL>)"QZS=,E)0%4#TB+Q?P\->KZU8AXO]-=U% M5FT3H4O!ZR.$J:$BVZY;6-/5T*XX;(8G_VT:P-MB@'5G8QRGY;AY0F<'[10' M:5J+UUI(*W*U%8D\XU ZC@O+!U88D4>9X^T@QVK8'DI:E'MP^5NU=3]!+4IQ M6<*R4J\MV95=PC4'J9ILWB$J=%SDM=E:Y>"5 ]:1_8G1=Y0J@>W*XF]18:/K M!Z(.B.Y@EH[E62>DI2%-W?RJ"NE8%@FF-C*D8WG_M2'):!3RJT[YI=3P!2R: MQ+YT,G>TW.\\=CK?<)PFP;!FRX3 MMI+$,!V@XK$8*H;L-RA!R\\IP5F1/FY \AUT@[W6;)WF6JY_*Z=T4>X/ M-KJ+7$]O!3;'(>7/8;&TW@U'RAB'P4D8*SX>ASENUF2\@X+%" M?S5\# >I=HL1Y>.0_I](CN&7@4)P&L.RCR9*J7OT6J$6TV2D$K :/I:'5%/V MIMRU(N#[Q:B(< XL(&%12UH.GY(AB;/PGBAWP!V4UU&294^TL4.5/*]-9%C& M^LJGU GV%[3L_A5#G0A:9C..Z*K[V ONZ*.)=SFJ@93D-E MHQ,Q3#:WX8C-=F9R)5A(AF[7>W># M M:X"2'B0];-[85P!Z8.+OEYRVRH2_@_#^[1OXHUKR"*=W85RM3.VI+J,"OKT^ M_;+G+VM.O-;0PPKR#!G&2<9<^Z;/BSAS#(AZ>:J@(B MS'Y7K67Z">X#^(K\^4_J;7_V3SI(&/SZ*K1T=V!;OJWB0#4=Q\-!WS0&@8^Q MIQ%5'_S'T%Y5'PW3:N(QOB,G_93@+R=X =SBJ,'_)@MK Z65AZ&8<-1;',7 MVP+EQB3/?$FS%/^TH33=[^W'6^7BYL.'RT\7ETBYNK[HU4/-MM=_<7/][O+Z M]O(=[.+Z]N;]U;OSSY>T+S;\]>'R^O.M? *L<$\#\(4Z)@D>L7_#/V]ED QZU;"C& MCZ=LA D .+<(CS-R6OUP5B51A3$[!?;1V?PIKM/OM8[6G//ELUK*;W7._Y3U<-N_J9X7IRL=U: MK+[6L"]8\2]Z8KPGKR[1O?=RG\&+S)N9\\.4$.4#O#?,E,LX( 'E._\L8J(8 M*EHCI?70#N0V_+K><6R**#,VX[IZN9@GIJNZN4[N\XN[/(JC,K9!4X=T(!)W M&N).)PLLUE"]>;(+:]ES6!>PK;GW [G):LW=:I:!+.^0.]A)G#TXG 5=T-0D MSDJ<[0[.&JJ!M*;]1"3.2IQM8;>Z92/=/99++H5!LHLDRY5D4/7-['RK]36W M;>E(U>I>Y2-32O<$'=-$5M.PN(3.SC5BT"XLM6Y:G@3/GL#C.@"=%EG;5BNT M;$'%YA]IDF7*.$T&X4;MI<5.U%V;(6C(C-<)<^/H0.K2&W4/V8 \.HAJ MGH=LN^$M5A*D0H+4=I'C".F:/&23>=IC_L4K2M?8\7;"G;OL^"97N/<5'H4. M?8NCLJ)HA-,OA%)4U]L=4"9U=0\?1D:;+NW(% MA8[E(=-H$3I;;0\BJN#\1#*"4W_(9&= [DF4C$<'<(/!NF:/B0R[KM4CW<][ MRY=!AHRLB0H=JMO4[J@@H;.W' CDMGD[RU&8G7^0F*0X8L(3!Z,P#K,\926Y M1V)]Z@:RFB8T2@UZY]#1D.U)^T90Z)A@WTCK4UCHZ,WOO)'6YYJ'?#Y*8!'? M,&U-03,'PSC'\5U(2\]QEI'\6%((::-J>9.>H, QD.G(ZT,$!8Z'M-K90A(X M^_*O(Z/V-?6"FJ"Z):@(Y7T5D_7S"(XEH\5QD:DU5*]ECI*($+5=Y-:^+4I" M5&"(:K:&5$^"])! :EA(U81,]SWD1,*KV$]&1!FDR:A2!I)X(_/Y(+!1-Y!F M-XQ1B<%?MF@Y' 1$-0>IM;-")$0%AJCA(LMN:,-+B H)40,Y]F:MJ$51 3K4 M^^J&7>X4,D4 *3'9J)BP0]AF(M62(6A!@:,AUVUH#$C@[-X_J[D-2VTE<'8? M=M*LAB66TEA>RUCNDT&2DE)B*CG^NEG+FH-0W70'Z1O>JB.5<:$@JKG(TZ0+ MY( @:EK(J:WQ2H@*#%'#1IZ87/TUR4N#>3=ZRJ&T4:ZW:3')""Q' MU:CKO.V2G2%1]N!0UD1V[7B#1%F)LJW:_JIQR/XYB;*'AK*ZASQ'9'=5M8IJ MU29#R&T;36N,,;/;Q5O5MS&\7&)7EW@<-N+TENM-VIIN!!\YQG['V&K 0!44 MPW_#6>AOXEHZ%&UFV=;$U%G4W@'TX90H)CB*M>AUEBAV%"CFM9@3*%'L*%"L MS83MK;8]$E5]?!=&14Z"37IB' I=+-N:J'1A=K_1C$0QL5&L=GL+B6(2Q6HJ MD-UO=RY13&P4$Z#O]&($R&HK B3'Z- 8AQR5^8O]@P0*AM7@.P(;'(V2F(=G M,J7(X%&>T-^.P3BA]>,RB'.L8QQO$&>RV\/*B#80E^1PH6/JW?=A M'2YT;$]>92$N= R];@+!MIUSO^2X'Q'X.PCOW[Z!/ZJI1SB]"^,3_LFIVE/= M^7/T29R3M#RRMV_Z=*QR#^L,U?C#+:Y!#B6'DD/)H98,5?Z2%<;HPJZRV5"E M$#)H YAQDH6T.?EI2B)V5>;90QCD0Q!A*DBHV:^JF:>?X'Z64$ODV4_J\?W9 M/X>3D-$8WY&3?DKPEQ,\@!V>XN@!/V8+$\$LL[O:YH*V#(,P^/55:.GNP+9\ M6\6!:CJ.AX.^:0P"'V-/(ZH^^(]AOMHVIFY?JW&>:#7TO&\_WBH7-Q\^7'ZZ MN$3*U?5%;SLXO:_U7]Q';/-AS*+4KG43EQR4AZC)$LZ.;\F:/V-,MZ]C$\??;9JF$UO>?97J-A5S\S MU=TLUEEO02\XZ%ZT +TGKRXQ\3@2[=;&MZW9)>,4],5W5SG%S@; M*H,H>V'L"8H&[\B I"E =UMW.'0HEO?:19JC_]QA M27:X@+$MLQ7 ;)7[BTOTXY3X)>?'<:#@40*K^C81!<#S@=/GC^PA^;L(QR.P MH(\DT]=#AM/]%@$'"QR]S7[[1Z$3G"]P@S#.<7P74M\^SC*2'XM^X(%ZT/V" M]0,%CH,,H_TBRN#&0;>ZJSO>Y+2?D]@T9!FMEA#>A32_F((AC[):(HAM_29 M S *<3^,6+"'\0'J$X!C)3X\AQ^Q_W<1\O3B9L&@=877H?1ST%U!P7_N^[ % M@&I*?!+>T\3,8^'YFH9,R?9%A(R'/*,=P&R3Y0M+\Y, L)]D1^/9?:TAS[-E MY%<\P%A(,]H!S%%(>&;,/:/;'8FHUY#K=?\>BP,%CH%LS3P,(T]8'C#1\L?X ML;&*WT'1 AJ^I4J9+QY@3&1JW<_V$IG>TV(;X9ONB9/7FHH#&4L@W(WKRE=+\T:1T@XROG1XH!?V^:-[172GF=^[(2\D]B8MC\=Q;R+/K MEB1**;^W#%I//9!L;6'I_F92DQ<1?#R2_K6G2F->1+!87N=EO+#Y&=<;%^6N M(5_6Z[ B.![:!K+4AIG;:[>8Z8K&?;'P:Q=97HT> M+TW%_>F&/7 M4$4%-3N[P0*X5*!D?S3FI^,BSVLG:BDMT)60L8$E.P=@A(I*^1]P7J1,\=L& MZ7=/LFBJA6!DZ7,6$SRVVBYTCD+ZGT]K?B@3Z!<9O$+[ C0O%.R@I-$]9)@U MLDND#K GR/SXG:MK^IFL#-Z/-YK=?!W&]9Q#Q^*WI*5EGE[?$I5>:#&AZ0+/ MKY'&(CW06_9 #\(8Q[[T0!^W!_H3&<\ZH/QD- )5-*/=:H[$#'U-KW%U96ZS M>)!IIGU*$[2^]CE.$SBUH)0,Y"M)_3 CE"$D8]:/@G8RKQC%YDRB>X:0CHS: M]7322MT3<$SD:BTFJQ^%GK"$2XS&4?)(".<#4^XPCG!]",%GN/OL >JEL/HD/7T@S0UZ4#[N=ZQO$:TO0P?#;T M2J$&I=]B>."VJ!L=!#1=@&7#.\@$<\)UZ";'2];NCQI6@R2%!['B%VE*8O\1 MK"Z?=0U44IR#C<4["$JOO^G4:&,D7?X"@])KV)!&,&[3(9=_>3]H2NO9:%R1 M*3PTNYC]0%.,[W&T:;+A0>"FKB'-:M@!6PQN(]6;!:O/1D;3ZR\%XS@=TF\N MGN,P"LZ5/KD+XY@:5;3: 29(@B/Q#^F:AU2WQ3LVI(=H92:JK2/7ZWY3].ZQ M! *_?Y89K,FF^:Y.#3C[("GH[6J,56\@Q80YN]KW4F_E2,0D4MU4D6XTO$-F M&^?2L@8GJ4%2PPPUJ![2[88AZ3:I@8FZ7W+:,!7^#L+[MV_@CVK)(YR"CEBM M3.VI"]UB?! <)"W/^NV;/AVKW/LZ0ZWU87G.A@U3CQ.>G'^:D@CGX3TY>PB# M? A04@$(LU]5\TP_P7TXNB)__I-Z*YS]DPX2!K^^"BW='=B6;ZLX4$W'\7#0 M-XU!X&/L:435!_\QG%?51\.TFGB,[\A)/R7XRPD>P'F>XN@!/V8+JX.ES1[% M-G?Q$L3+7S(4U%=@P,;4YBX0F_.$V.AV;S_>*A3W5 L%55/)AC@E M]+)NVK[YY^V<0WUFM'0HQABG/(5Q8CC:"(\SS4&$?KX/@]30I0/\-XP4R[C M@ 14)ORSB(EBJ&B=V@IYB&]OPZ_K'>$+"%FG8*3;)Z:KNKE;Y#JDHS+6.*JC M.A").PUQIY-QO)>MK9G$@63TI/OU#C-51-G\^F[&>GO>LR-QO=3.G.M2KB['-$-, M5+MB:K>2XZ_5G5-=+[%>;]\>TN2-4X+"QD2Z43<[3L)F7W3CZ W3G"5L=@P; MFY9+'DAC@C7$Y2@,@HCL]XC?D7%*_)!=QLKB^WB4P**^X:JEIBA=]=LX'&HJ M[S6K>;+);B6=MP0;6\)&3-AXR' <"1M!8:/7MA.V")M]FZ!M'/'Y@@@-XQS' M=R%-3,-91MJXFZ(=#NV:>]7>FG&!UC7K-F!C(-/9J[= PJ:.)\=Q)6R$A(V# M#*-%GG8,%NDM;8=WTL>TE92?C*@+ETO23=RYG5/3- V931M^2!UZU\#1D;O? M:G0)G/55&PU96L,$!PF<7<=&J=NF1:TBWK#W=F20U[/7AHGOU.V1*J.R>6BQK7W=92KBL M#Q=3=UJ!RC%8HE<3P?A,,O]AZFBO=>34N5%8ZLY[X\&VIDFX" <7"]G.ONX_ MDG"IQ<>,&M*QPV9F&\E9-_F0I,>16]OZ-:Z=T8%;J6@RY,U28D)&THW(T&F5 M;@ZX^'M5%YCU2X"ZV(=RM\5@G6I#N6:*E-F@:F>+I]*-RD=)"D= "H:+M VK M)B4I2%(X!%)P761YDA0D*4A2<*QN2H56NW3+QKA+GG6M?:MZB-<C3J'S1LI'N MFLO4M&H%Y?O\$K]MYQ_),0YKC -6\9^_ J/I1BO6(&P^';L*8A>BY6!/C-U% M($^L;C-\>6)UN[%OYEA9GO=.>#%E,)MJM9RB5U; MX@%;%2]4M#7=K>BF(Z_.VJDT.[ 3XT4\\L3JUGK($ZM;$G LF3)K9,XVB\-M MOWQ&& S1NU51*[QIML7N01+Y)/))Y)/()Y%/(M^Q(I^L#96UH7*Q8BY6UH;N MO>[E.HE/_C@__ZB4-[>/2:K<#G%*:IGXLK)1EH?*\E!9XB?Z4YXC:#MP139;&G/0EK&/&=^([_!030SDPC;%81E)0L2827"=@1A><6(1%B) ML!U!6%ZP(R+";O56%UM,5-O)[=O=NQJAR>W;6[P=H86D^0X!I\GMVQ(X>U(W MFMR^+8&S)]':Y/;M+0)GJY>&"BI ST<)K.$;%YK)0 GC',=W(0VPXRPC>;;_ M2T1;R9U'KJGN\Y[WG=@6APD; YE.PUP="9L=P\9#FN-*V @)&P<91HL\;=_F M9QMWMGXB,,@WL#WOV90'D>H\[6!5-O>DQXF8S7KP\5"FK9+P%3 M S :TE2W%< <KJ%9MM77WUJZZ&LLE=GR)!VP?LE8MF5+0 M@I$\834C14Z4>%+"S?)TXGDKDC5YR9XT>=EV0$".(88$CIC ;8[ TXIM[0%2>!LP?*\60)H;# ,?2&49=#]/S),3HTQ@%[ MXZ:=$Z9A.8K57NV6U]-_O#31U]1H)FGV! MQI%4(RIHK+I>H4DNDIT MW7^+C)Z]V97#$ETENNX378V&G5UE%4W'ZS_D$F4538.X?; \4U*&)<1E\FK/ M['[[;HE@(B.8(5-#)(+M-'+?_91HB6 B(YA[1+UY!%.[\*X6IG:4UV&_GQ[??IEN=/%#\N3,;2>!8T]:W?BN)+?YU=HN7=O)^=@@Q\\DW /0].];*=)#J1W9O;+/<(6 M03?&]L@FA/WU6R79O"&0,(%T=W^8 ?2JMZI*)>7RGT]#CSPR$?' O_I@Z/D/ MA/E.X'+__NI#O=MHM3[\L_;+Y7]HVN^_=J[)Q\ 9#9D?DX9@-&8N&?-X0.(! M([\%XH$_4G+KT;@?B*&FJ6&-()P(?C^(B9DW[;1;VBJJ;MZN% S+TOJ.:6FV MX1:U2K%7T7J6771'I$7/T^^ Q!PTY -C*)!WY4ZQ!V[3S>#R>]N6^QWV&],G%@OH1 MHD]C("C,8!2T?%FSC'0>7(0OS"*7#<0]=,Y;,%<44]]AT_XP]<-"_[$E>QN5 M2B4G6V<@;IK7L.9@G,-H??]MZ)AY+6]JACD%+^+K@ -4C-SO7Z^[SH -J;:$ MU&9TD#/IU"N(+Q(*FWLT4G-6/0KRFF&^]JV;J5T.&'5KET,64X+C-?;GB#]> M91J!'X/L:G>3$(8YZMM5)F9/<4ZNG*O]\LLOES&//5:+PLC14&3S);-PF5,_ M7N;4U+W G=0N7?Y(HGCBL:N,RZ/0HY.J'_@, .!/5>S(A/K(79?Y\B.TMT&! M!'?4^D]QA_6O,HX& N+3(<[$>+4.*N:BFGWRZ'V&* 9<98!CU3Y_8J[6IQYB MSMVK3%\SS4SM4_VZV[S,+:RPQX)-'_";-&!%0;V6[[*G+VPRG=_*U/+ T'S% M+%8JKUVD[KJ"15'ROVN0-&.ZD)VI699%NL$(C$J7/0(\\/]8,!8??EESNFPA M4^N.>,R( 6@>:*$&?+P1=\'8GRY3S-2^K,QB34= M;&.D!=)K8,WF%8VNX$7B"J?\O+?Q=](!K8ZR'W)M4/=WP(DMMF8]() MAM3_D(U@?P45$;RO.D;\_UC5L %A^76LB%"">7!/3HFBR/"MW;IK?B3=N_I= MLWORT':;C6^=UEVKV27U]D?2_+WQ7_7VYR9IW'S]VNIV6S?MC2@,J;@'B>@% M<1P,JT58[E20^HU& _"4X\#/DH]Z0PFF\Y7L M;O33($#Y4DT;V\Z=SMR0,Z]Q(*0NA@(:A[KP]SEN5^$6JY\&GR26-^.1#2B MP*4X -_1P8"%&!8)!#$*9^XY"?K2K&.LFG@M'!9/'1=2=V+H0HR*9>^BOR=$ MGOP.Y%%@N,P)A SEJB-P\@7VRNSA[:6*?RO]@J;R%A;C$Q=^T88PA73X-)=. MM FC0IMS_3*U_QYY$V(6LC(E\$*+(:7B1#E@KQ50)!:*F&!A(&)REGX'\G@@ MBC&1 4_2S-S-=N8TQ7 7+3V,&*H J,/N>80)BE@%'4JZ(%;MWG:E5]'L-)I9 MTFHW]&41^\??C&+^XKL5M+/F$P5KAF1!^9H1BM"(=$/F8&#A$NX3'D>D,8#X M@(G-XO9BW&/:\U@Z2R\0P&H-:.#1,&+5],-%FCI1:2=-#KI89$$!%GAD(N8. M]9)%Y'JJ>18;Z'D5'\00B,1NNG+2K$-3;O5WR]!MRUS;E->-/7\OYO<;L1$H M4S#\"C;Y?[6J.6# M30L3LR:3,HU@Y,=BT@C/)(4'&) MDJR?E%JE5$OOZ%V=-(>A%TR8((L:B7F)\U5=RTE7ZIVX8:62;A?7-^WK\1BZ M:>\WTR:@C+)>R6^?ZN4>#[K3R^14E-R8X3YB F'_C6/+05]I]W.^[!YYR6=/ M^LI;#_H6#PL.YA-,N_T4E;W/3"M;CTQ?+!LO/30U\ML.3?\B^=EY?YI*Q#MB M^6T I/;^EX&^5 L@B*UA;WZ/T<"[\VT7^VNY*B*:X+1A?4TLS4 MBL:*4I[O886O Q",VT'@+T7IA@5AI%70*O;JOKQ_LO9D\K"SS.N'B-PQCX6( M>A+G9#% ]$:H301)O22G[T^\VD%,ZF'H@?)CP'%"F&Q@SR?8]2&84GER09*O MB;'-$M['W+A_SUS213>!7-,H)AUY///LXCE0O%-T_'[[N5UD#+O M=7*[^][RF^ Q2"HFE49^DAF)5EW[7A!X/0IB%X/P3_O2!+O M&+D=+X^4D APF*<1">BXQK/Z M422N"VZQ X3Q[[^",<65=Q6WP@\A;C/ZD&%"H%59,VP*GN6^ MFQ2JOC_E,"5O*XI&3+Q &DL_I7&M-%I,L\^:A23/Y#=. M-+"9\TY4I,$$Q"KANF)0J>))Y &$7!=#;*'#.PDPK#*,VJ^>:=-4)@0KI>T1 MQLY0%?62N1VJ[Z=VZ [O"JK*3F= '(]&T>L,VLDA**A,6W4GPU[@G>V5>7X' MZ*6%DY)]+#6]8$'& PZ_S,S,.A<@!3:=T9:6<8DF(ABKS^:ASBOD+]S'NH"J MAD;]=#; _6\3&F9/ZM#44RAG:NAQ! A[X#QD24@%>:3>B)&_HY4T2(C7[ 9[ MULT=G@WOD.B),BM=GE*\(NNH&R]PS+X7"MZ!EY!<4>VBT"4W5,GU=>/%>O\: MW_44,^AO<%$XO]M%X?,UQ^]'<8/GF?GO413S_N1(W&GY+@89C/0FQ)'I?X#T M 38Q!@ZP6,[-\X@ B!"A(#+WY!YL8SS 6"7$?#V-B,OZL(2\-J"2A/E"ZDPO M90C5-2J+G.'17>E")@K3SK ,"$"(%P[PS$4%/&9/,]?,M>YNUG12#'YFX^:F MU0_"NOG+Q&_-N.8&)J2(G6).0%5UI)!_EH W%-P[I@-,X_ETP#M6QOX6]1+2@B7X@X]M1Q&0O0#4YJ,-76[B,>=4-?F2 7,N;X.+R MS1X4*!]P@Q;!'GD$XT"_J>]@EI8Z#MY>P,[X54PCV)9T,8G$Q**YV=#: ^\M%&\ M.N2YQQ3V?>VA-'WM82!F^_ ]TWJ"T0>-]L& 5ZDWII,(4P+[/0FQQ\L/:(4T M$"]!G;@:C88@>9-3O>.W$J,:)NX1O]]>U]OUNYO.'Z1]<]?<+Y>UT0=:B".M MHV3U)'HW/EFX))PE8UEB -:'SHH4P!.=0 @PYVK+43F//FPROO:Y7K]%](,ADX&VR]%:N"K@)A$$1;#! MQ$@A543"(PA>R!^ O7KT[?.(N_C^%PE&L1<$#S#$F2\125!$D(S2140V4D8G M=<\C@?1?N3]]F$PZ)C3U3M>2(9NP3]&/;5Y"2L;\W"H+WXH9S*/GC2SP<@AK M1="@Q,==]3AW+QC6_B[=*@TF433UOZD";:.3%L@#U M!@0@.;E 2GV:^@R- 'P8;'@A.=ZC+=H@:DOV8JN\Z02T?(T^"Q9Z%-^YVBZM M4P-'A\KY6S8Y4VB 7W%,P;E<-F#S-JF>S++))"7:D5YL@YZ@B@R4#OS6Z;-9 M@-+KN?Q>I05-]B8JIA96JPM]#I[Y9>M-!DXX?B*RUP,!+/"1C='SZK MF,!G5?:WVBM0K-I< KOY5&R_17+9=@K;S"I]A>$CP:)$@"7ADT&@KV,(;+1K MH(<\S>O MNDS=S(PF4GI>.B3QP6HU1J S?EIXB\!YC9ORR* M+<@G1M,]1EP&,B"+7>%+1IIYF<# J!<")B8WP6G46]XU;0432&#'$&F3:-3[ MMW2TE,_F<=H#SRY.RF)IG&IG5HKK G@+MG?>Z&*=;B"C^C1;("&,4J&>0D#< M] U?M8=M+/1+TWC!2NLZ#+-X4L9"^<:(@KB'*8D0:ZFQ5'AJH@#H2+U!XBQ MKS!7+NX+78C5E,(&+7G;C- 6]ZH"<-Y@7NN MDAJK_SU>HF7;E8:4_KM;X3=_]J9BZH5"9>\R=$,O/G.S>=>IRD7=/,XEZ=.Z M_I+N*."^'[Y\[;1Q/E IY-:SS[6H6_F"T3>/8AHNZ=ID(E,4N3@Z@$0]3MUUG9Q!,Z'8P: 8!";BFXU2T\6 #!Q,O='VE,U?,X9VS88ZZ; M_-&-)#9M2?>!R#_.D3KV+RX&WO?08Y\0=>>Y7Q@/O\?C,'Q/XB3.PT[@5$L5 M<[<^M^MWWSJ[O6>^&,R\+%]R"F'1_,O%ZKC_SQ$721BX6WXANZY.P,6]P:&C M2.:@>92^/*MR&Q$@#@V!>@6TQR!F[V-PCA/)'2GI@ G>$>86Y'1T% \" O&9B[\[E^7KIGF8F0"HLE$^1!2X]FF2 MXE_CBO[U!FW-6\2;?+*75)#N^P;549ZJ.HI/9:9/;E<3'[F8/C?^75PMD^C] M.JE^3^CDHASYTOKZ:[-S_0=I-Z^['-DS55;;YLP%'[/ MK_!XGKD$2 IJ4FFM*DW*+NI:K6^3L0^)5;"9;9KTWP\[H)3>UDA[6%YR..?[ MSOW Z=FNKM ]*,VE6'B1'WH(!)6,B_7"N[F^Q"?>V7(R.?V \>VGJQ6ZD+2M M01ATKH 88&C+S0:9#:"?4MWQ>X*^5\244M48+QWM7#8/BJ\W!DW#:3+ !JO* M69AD:13'N*33&"<1F^%L5F2XB),998S-BR3\N,XAHTG(D@RG89'B))U1?)+& M$2YG0"!.RSF;9\[I3N>:;J FJ"M-Z'RG%][&F"8/@NUVZV]C7ZIU, W#*+C] MLOKAH%Z/K;BX&Z%WA:H&?!Q8-$:N.Q:2$N,6X]66.#RV(HZF.([\G69>\*ZP M8T=<:$,$A6-B=T]XX/V+' [S/2Z'@7=\#LZ9!NJOY7W @-O)Q2^'UZ_!K8"M M,(Y)A)#&\:VFUS4-%Z7<*SJ533P?LK^" 36W$4 W1V/JW=U*&AP81Z: MSH7NYE#!OD7_<_T5*8ZMOZ- =63AEGC=V1%G"^]<=E\!#UG=S=7G-]\N+N > M/S@<7#(HN>!NZ4+WBQ ^?#,PW$/>(%)2T;8Z MGG=(ZU5:KQSZU]]7,#ZP_?.C(W2*_64O)W\ 4$L#!!0 ( ! _^EB]-T^< M10H !18 5 &ULS9QO;]LX$L;?]U/H MMGV4%RV#9H4N[C#P> _)4)M*Y"5)OGV1\EV8L>235*V MBGT=#R7G[Z_UT$OS4Y3PO9N].HM?A2:!GLE#Y[.K=R??+3Y"> M_/K^U:NW?P'X\Q_?SH+?"GD[U;,J."TUK[0*[O+J.JBN=?!'4?[(?_+@?,*K MK"BG .^;MYT6-P]E?G5=!2A$>+5L]6KY1H68)5$<0R91##A2!!@1#$2,B51* M48'#7Z[>:"9QJ#"#)!0)X(1(2),X@HQHKN,DHXJR)N@DG_UX4_\C^%P'QMYL MWOSX[N2ZJF[>C$9W=W>O[T4Y>5V45R,4AO%HM?IDN?Q^:_U=W*R.&&.CYM7' MI?.\;:$)&XW^_/WL0E[K*8=\-J_X3-8"\_S-O'GRK)"\:JJ^-Z^@3V\F>O7<=:FS]K"3LMR(6F?)ZBPC4F?YURZQ M48_T#Y1OM9WK 9)K['XY5(Z[:OKE8.E>FD\(??R$UV1ZI[PXH#[.U%#'[J-4 M[]2/G_&A#HNBXI,!#HLGF;64)_439^;14J8.M./#M-%9?G2OI:KO*SU3>O%I MN1$ZR-6[$_-HK'0^OM#RMLRKAX_W\IK/KO07/M5C3%,L8LZ!-9DGDF"8+N1%X4C?IHGSNI)![G3P=]'-CI;$QU_+U M5?%S9-YJ[*"X?@#U@^98[PPXVOHM?"A76?)2[BG9IE93&U MLU,5=K_ 1=F,Z$E0E$J7YIRRQ4#K810A<9E7$STF%(><%TW,; MO4!Z##8X1,]MM &TM<8=GC],'-/ 3HOI]':6+R:*^5B'222E))!*;F8JE$7 M(].BS 59ES2F/+0EJ!6A2-CM-0,-D7M*6JORGZ4>GMUX\G1IA-..ZUX,=4> M<3"P=AI:IVOW0G?$ZD%]Y(?)Q5 MYHSO\TP6Y4U1-DWIHN*5/BUN9U7Y<%HH/<["C-&(I* 3P@''*09!,P4ZE3&F M @L6$UM0+/2.C,\B@V CA5^")@E3M6"92%!G8L^631GW$W?@XKAQ>(BZ.$'J MX-8+79OX@P'M8'8=W^<+_02ES6,R;N%_+\[+XF1L[8YYJFE+&($J5 LQ5 M D)K"@DB6,E0(Y(X4M\N- SN2^VU WJE[PIY1[ELZ>Y?!"^L/?Q[P+S;7 ^* M.P(/C.]N>]O<[EGO#NQYJ>OY49LH]=7NS_/YK2XOZPL%Y=Y)I^L$@@6&00-"G8L[NWJ&\-_A@.-O:7$?:^CWN6*_N7GF\8/N;^< 8IT+0D&H! M69PF@#&FP%F$@88ZQ8IFL636\VFKPI$!?KPG9R$:&-6@EK6'MKTN^TGM[=8- M3V>C3DCN-./%87O$P>#;:6B=N-T+W3$[+7[J\H.85R67E<5AM+'^>(=/(Q/\ M9R7TW\,<-JW)>QTNFY$&.TQ:#:P?'NT+?*>@CU-=7N6SJW^6Q5UU;3[I;_CL M8HP^[7$'GGQVFML>?'8O[SWWK)^W,TVSC!$$6:3- M61)/0DA)FH&D<224,-,0MKZFW"TS]*QSD"&GUWCS,H/-T2>:(\TR_P]3C-O\ M3L12Q5A1Q($0SP!$S0-)80X82I!%B2,(%QR2QQ6<]\)'!.6TV MF8V6XX6S#>\6(YFG(\>)S,Z,VSS6DKG?.+8>:+AIK"7]C6&L[?6>5Z3.BWG% M)__.;YJ#@VB>)8EBP!&F]5WM*7"<)< 9CQE*S"S&K+>VNV4&OAJUT Z,N-<% MY]9"V4YB?>U[#6+.SOVO0K4:ZW\-:C/LRUR!:K76>?VI?;7_-O6E>>LXDQ@C MAF.(55K?%!)*X"1A$,8JICADL4#"=7>Z#CS4IG2MY;X3W5BWWX!V->2Y[[S3 MB]=F\WKBO?:8FT"#;RVOI]^VH[SQNF^7.C6!2C[Y;.:H^W_IAW'"&.&2"I!$ MQ(!E1" 53(-(39O"!&#JJIQ_33A5V,J2,HXT<"YE(!Y&$&J MN(!(<"YPII"4VA:OC,* PYCTV^R) 2$"4JUR"A.(K>F\Q1\ MF'Y3ZSE_Z6.K#K9-QL^=5W^Q,>;16;8=]&@J:\$&[B?;-K9;2 MG:VK7K90'J *7FBZ%\ #SSWF>D#:%7E@5/<8W 9VWQMZ=LWE?V?Y3$=CQ!FG MQ Q>810RP$HHTS=%#%)P1%1&4Y1:WW#1J3)PYUP^"&KMX.O,=Q]^HTZ._=/7 M?;\.:FWO?1S>BODPG;3/6V4M;%Q\.2S0FE"F&0@FHWB/!6%%@811! M3&.JF6FLFECOQW>JO"26EW=%?RQ1#RR=W!\0RUW&#X(E.@J6Z.6Q1"Y8HMY8 M?M-7>7TW\JQJ_N082GC(>42!1"D%S#&!-$8QD$R)!,4DH5'F1N2FP# P/FDZ M_AFVUIK8TN?OU L\6Y,>N+4[Z4':LX #0]9N9YNOCG5=:*U7W,#XX_VKU3/Y MXH_(OG_U/U!+ P04 " 0/_I8X>J3!-@& #^,@ %0 '-PTN\D#K$&(V7]&_+0[!!TB@M4=0K(I4.I%""D:3!@5#) M1&/[DU9E_?MA]^+=!F;H7KWIO[[?7[7MY>%\?GU]?7#CR;4:Z0X1Q(MC!S2;N'^W-9G=RY*:"SY!FW?LOGT\? MF=Q<;D*S7D,.<( ?YEV;^4F#3.!H^][M[26\W]^4Z\L*ML=6&1(>P[ZD"RLU M7'4V_WK7/O>Y& MO<%A]Z'80#A8-E_G>&(,"1?=ATX2T/'04<-^:.WQJ!^&]#B'69,C9)P\MN9<#D_"^QC;^Q;S M2Y?Q1"2LRBIN>Z?M3BE0M]R M%Q$_AUPV\4,=?\0Y=U$$KZF..$5:3XGD@1,70!%:&*."UK^4;P_"A;LOV]C,LRTZ)NOW9K6$AHD#GC2 ]A,=H!O*)4Z\#K);'S5F2KA<%B%RP9/34HD=$/*<[4%XF*GC M,5K5*;%Q_X8[>F +90U2[061WF@$/*$D225BO7 T>%J C[M#XZ'I0604WPD9 MK]9THF#P!946-!683B<=\<5%8J6C1'"O4Q$Y%\'^7\#@@\"PWQ\8_YNF4P*C MSYP_Y?/@;,]&-^CB#ZQ,DS@0WQ@5";71$4F=)H4 0] ;W7%1'9_VX\OP#:\.B M/^$BYZNE>^.0=S?#JO-54V\WUB +$5@$ ICH8 [D RE !"*C+ (-042>1H7] M6XO#0C_AHN8H"=\X_+_FLFVA/FG6ZZOZ?O.\P2G+@8LH B:[')6@EO@0-4F> M4^N-BGQD]OBLV6$@3+AJ.5[,-Z;A2U.5H6S+>OD3YC6Y=-5"!F_ *(B0B M"\](P7DD!D32#*4YP'0\3-D#*)1)D$)LTI:C5R.?G&XC <)ERH'"7A M&X?_(KON><8OMVO?5,BM<)X7@2C),1GFA2!>@"4V* D1-\9:J%&Q?V1N6. G M7(A\O7@3N>@_W(25JY?0/^3AM(W!=Y4Q=)[(9 4I1/8V-[\$VX747#K M*),$5/=$3]246*HY\S9^(>(8'CO;N M?^A>NK]+'.W]&U!+ 0(4 Q0 ( ! _^EBN@J6G^3( N0 P 5 M " 0 !E&UL M4$L! A0#% @ $#_Z6.'JDP38!@ _C( !4 ( !EU$ L '-P XML 18 spsc-20240725_htm.xml IDEA: XBRL DOCUMENT 0001092699 2024-07-25 2024-07-25 false 0001092699 333 South Seventh Street Suite 1000 Minneapolis MN NASDAQ 8-K/A 2024-07-25 SPS COMMERCE, INC. DE 001-34702 41-2015127 333 South Seventh Street Suite 1000 Minneapolis MN 55402 612 435-9400 false false false false Common stock, par value $0.001 per share SPSC NASDAQ false