Fit

Fit

Outside the framework's universe (U2 not met); contested: P2

At a $2.79B market capitalization SPS Commerce sits about 72% below the framework's $10B scale line (U2), so the screen stops before any dislocation setup is underwritten — the overall verdict is Outside the framework's universe. Confidence is high: the two model families agreed unanimously on every gate, the diagnosis trial was order-stable, and load-bearing spreads were at most 0.15. No exclusion fired and no prior-driven-risk flag was raised. One criterion is contested — P2 (FCF consistency).

Market Cap ($M) vs $10B bar

$2,788

Peak-to-Trough Drawdown

-76.8%

Adj. FCF Yield vs 8.5% bar

0.17%

Diagnosis p(temporary)

58%

Sources: market cap and drawdown from the reported feature set (price 2026-07-31); adjusted FCF yield derived from the FY2025 10-K cash-flow statement [1]; p(temporary) from the diagnosis trial.

The overall call is set by a single deterministic rule — U2 not_met -> out_of_universe. Because scale is a universe test, it short-circuits everything downstream: the pillar work below is reported in full, but none of it can move a company that is not in the universe back into it.

Universe and exclusions — unsoftened

U1 — Listing: met. SPS Commerce is a Delaware-incorporated, Minneapolis-based US issuer whose common stock is a primary Nasdaq listing under ticker SPSC (Commission file 001-34702); it is not a European ADR and carries no China-domicile disqualifier [2]. Vote: unanimous met across all four jurors.

U2 — Scale: not met. Market cap is price 73.39 (2026-07-31) x 37,992,000 shares = $2,788,232,880 ≈ $2.79B, roughly $7.21B — about 72% — below the $10B line. Even the pre-drawdown peak close of $215.42 (2024-07-31) implies only ~$8.18B on the current share count, so no price in this window clears the bar. Vote: unanimous not_met. This is the criterion that decides the verdict.

Loading...

Source: derived from reported price and FY2025 diluted share count; peak close 2024-07-31.

Exclusions — none fired. X1 (auto OEM): not a hit — SPS is a cloud supply-chain / EDI network with 96% recurring software revenue and no vehicle manufacturing [3]. X2 (promotion pattern): not a hit — a said-versus-did gap exists (the "15% or greater" growth algorithm was dropped and Carbon6 was divested at a loss), but the second prong is not the promotion archetype: near-term profit guides held and the reversal crystallized a loss rather than hiding it, and insider economics are weak-but-honestly-gated [4] [5]. X3 (structural decline): not a hit — no realized volume, share, or pricing loss that fails to mean-revert (100th consecutive quarter of revenue growth) [6]. X4 (consensus-saturated story): not a hit — ~3.7x sales after a 76.8% drawdown with forward estimates being cut, the opposite of a chased growth narrative. All four are unanimous not_met across both model families.

S1 — China dependence: not flagged. Largest customer is under 1% of revenue, no geographic revenue concentration is disclosed, and only immaterial non-US property is on the books [7]. The corpus carries no explicit US-vs-China revenue split, so this rests on the absence of any China disclosure rather than a stated 0% (see Data gaps).

Pattern match

The framework's dislocation screen distinguishes entries mainly by balance sheet and return engine: a fortress net-cash compounder whose stable FCF yield has jumped toward the bar; a moderate-leverage name; a levered turnaround carrying an explicit yield-and-share-reduction exception; and a dividend-anchored income name (P4c). Cutting across all four is the diagnosis test that separates a real dislocation from a value trap — whether the impairment is temporary (NPV broadly intact) or permanent.

On the balance sheet, SPS is squarely the fortress net-cash compounder shape: zero funded debt, $151.4M cash, no dividend, and a buyback that stepped up into the fall [8]. But two of the shape's defining checks do not confirm. The fortress signature — a stable ~3.5–4% yield that suddenly jumped toward the bar — is absent on the framework's adjusted basis: adjusted FCF yield is ~0.17%, not near the 8.5% bar. And the dislocation carries an inverted signature — a growth-rate reset with no numerator impairment — rather than the capitulation on cut earnings the pattern expects. Framing aside, the setup question is moot here: the universe miss stops the screen before any of the four patterns is underwritten.

The pillar ledger

Reference lines below are the framework's own bars; the verdicts are the tally's, not re-derived here.

No Results

Source: the deterministic Fit tally (per-criterion verdicts, probabilities, and spreads).

Year-10 gate — P1: met (p 0.795, spread 0.09)

Revenue rose every year from $193.2M (FY2016) to $751.5M (FY2025), a ~16.3% CAGR across 100 straight quarters of growth on 96% recurring revenue in a fragmented market it leads [9] [10] [11]. Year-10 revenue durability clears the gate with high conviction; the disqualifier (three consecutive years of high-single-digit revenue decline) is nowhere near triggered. The strongest surviving counter sits inside the same finding: FY2025's 20% customer-count jump was almost entirely the acquired Carbon6 cohort (organic net adds ~750), later divested at a ~$23.5M loss, and the stated growth framework was cut from "15%+" to "at least high single digits" [12] [13]. So year-10 adjusted-FCF durability is softer than the headline, but P1 is unanimous met and cross-family. Full treatment: the Business tab.

Consistency — P2: contested (cannot_determine vs not_met)

This is the one contested criterion. The split is a genuine cross-family disagreement (jurors a, c: cannot_determine; b, d: not_met), not a factual dispute. On the raw basis FCF is exceptionally durable — ten straight positive years, a monotone rolling-5-year average climbing from $41.2M to $115.1M, one -14.1% dip (FY2022). On the framework's adjusted definition (FCF minus SBC minus trailing-5-year-average cash acquisitions) recent-year adjusted FCF collapses to roughly -$2.3M (FY2024) and +$4.7M (FY2025) because acquisition outlays ran $147.9M and $142.6M [14]. The deterministic fcf_stability feature could not compute at all (SBC null, acquisitions zeroed in the feed), so no full rolling-5-year adjusted series exists — hence the cannot_determine reading. Both readings appear again under Contested below. Full treatment: the Durability tab.

Dislocation and yield — P3a met, P3b met, P3c not_met, P3d not_met (p 0.105, spread 0.02)

The drawdown has a dated trigger: on the Q2 FY2025 call (2025-07-31) management reset the multi-year growth algorithm and the stock fell -22.0% that session — one of four scheduled-earnings legs across a 651-day, -76.8% fall [15]. Volume ran ~6.96x the trailing median at its 20-day peak, well past the 2x reference line (P3b met, reported as a measure). The counter, carried in the same treatment: the -22.0% reaction landed on a +10.3% normalized-EPS beat and the volume spikes cluster on scheduled earnings days — consistent with an orderly information-driven re-rating as much as a fear-driven capitulation.

Yield is where the setup fails on its own terms. SPS is a fortress (net cash, zero funded debt), so the applicable reference line is 8.5% [16]. Adjusted FCF yield computes to ~0.17% — about 833 bps below the bar — because the trailing-5-year average acquisition charge (~$93.9M) and SBC (~$53.7M) consume nearly all of the $152.3M reported FCF [17]. Even the most charitable read the framework forbids — unadjusted FCF (5.46%) or consensus FCF (5.80%) — stays below 8.5%. The forward path (P3d) does not close it: consensus forward yield rises 5.80% → 6.55% → 7.20% → 7.93% (FY2025–FY2028) and never reaches the bar within three years, and those figures are themselves unadjusted, so the adjusted forward yield is lower still — p(clears within 3y) ≈ 0.105. The counter carried alongside: consensus FCF is modeled up ~37% to $221.0M by FY2028, so the trajectory points toward the bar, just not within the window. Full treatment: the Dislocation and Yield tabs.

Balance sheet and self-help — P4a met, P4b not_met, P4c not_applicable

The balance sheet outlasts the problem trivially: $151.4M cash, no borrowings line, no maturities or covenants to crowd out repurchases [18] [19]. The counter inside P4a: headroom has been routed M&A-first — roughly $568M of acquisitions FY2020–FY2025 against roughly $234M of buybacks, more than 2:1 [20]. P4b fails on the hard-fail path: diluted shares rose from 36.285M (FY2020) to 37.992M (FY2025) — a +0.92% CAGR — because buybacks roughly matched SBC rather than shrinking the count. The counter is a genuine, price-timed buyback escalation ($0 FY2023, $37.6M FY2024, $114.3M FY2025, against a $300M authorization) that shows capacity and intent even though the count has not yet inflected down [21] [22]. P4c is not applicable: SPS has never paid a dividend and states no intention to [23]. Full treatment: the Self-Help tab.

Diagnosis — P5: met (p_temporary 0.58, spread 0.13)

The adversarial trial (two opposing cited briefs, three independent judges) settled the temporary-vs-permanent question at p_temporary 0.58 (mean 0.60, spread 0.13, order-stable, not contested). The de-rating is an inverted signature: consensus FCF rises $161.7M (FY2025) to $221.0M (FY2028) and normalized EPS $4.13 to $6.00 while revenue grew +17.8% — the near-term earnings numerator never fell, so the damage is a growth-rate reset and multiple compression [24]. The strongest permanent-case counter carried in the same treatment: the Amazon revenue-recovery line was impaired by Amazon policy changes, and SPS sold the entire third-party revenue-recovery unit in June 2026 at a $23.454M loss on sale — a growth leg cut, not paused [25] [26] [27]. Full treatment: the Damage Math tab.

Instrument context — I1: not_verifiable

Listed SPSC options exist and 30-day implied volatility is 51.74% (2026-07-31), within the ≤55 acceptable line — but a dated, citable source confirming ≥12-month LEAPS with adequate open interest and spreads was not obtainable this pass (longest verifiable expiry ~5 months out). I1 never blocks a pillar verdict; it drives only the watchlist overlay, which applies solely to fits/lean_fit outcomes and is therefore inert here. Full treatment: the Clock tab.

What a 3x-in-3-years would require

The framework's target test cannot be rendered as arithmetic for this name. The re-rating math is unavailable: the tally records that the applicable bar or normalized adjusted FCF is missing, so there is no price-at-bar-yield, no implied market cap, and no base-rate overlay to compute. In plain terms, with adjusted FCF running near zero after SBC and the trailing acquisition charge, there is no stable normalized adjusted-FCF figure to capitalize at the 8.5% bar — the input the target test needs does not exist for SPS on the framework's own definition.

Contested and undetermined

Contested — P2 (FCF consistency). Both readings are on the table, split cleanly by model family:

cannot_determine (jurors a, c): the deterministic fcf_stability feature is empty — SBC is null and acquisitions are zeroed in the cash-flow feed for every year — so no rolling-5-year adjusted FCF series can be built; only FY2024 and FY2025 are fully computable from primary statements, short of the five consecutive observations the criterion asks for.

not_met (jurors b, d): rebuilt from the annual filings, adjusted FCF is razor-thin to negative in the latest years (FY2024 ≈ -$2.3M, FY2025 ≈ +$4.7M) because the trailing-5-year acquisition charge grew to ~$85–94M/yr, so the stable, acceptable-volatility adjusted series the criterion requires is not evidenced [28].

Nothing else was contested. No criterion resolved to cannot_determine at the tally level (P2 aggregates to contested, not cannot_determine), so there is no undetermined criterion to name here.

Provenance

No Results

Source: the Fit tally provenance block and the skeptic refutations ledger.

The verdict was not close and it was not fragile: two independent model families reached the same gate calls, the diagnosis trial gave the same answer regardless of which brief the judges read first, and swapping the company's name out of the evidence moved no gate and shifted probabilities by at most 0.015. Of sixteen claims checked in full, none was refuted; three were weakened (the price-vs-NPV gap is assumption-sensitive, the driver-that-broke uses newer filing figures, and the share-count trend has a fresh interim buyback inflection), and one — the long-dated-options fact — could not be verified from the corpus.

The falsifier ledger

These are the standing what-would-change-this conditions carried from the tally and the diagnosis trial; each names its threshold, direction, and window where defined.

Data gaps

  • Adjusted FCF is not_computable in the feature set — SBC is missing from the cash-flow feed for FY2016–FY2025, so the framework's adjusted-FCF prong rests on raw FCF ($152.3M FY2025) plus hand-computed SBC (~$53.7M) and ~$94M/yr trailing average acquisitions rather than a single verifiable adjusted figure.
  • No full rolling-5-year adjusted-FCF series can be built — pre-FY2020 acquisition figures were not retrieved, so only FY2024 (≈ -$2.3M) and FY2025 (≈ +$4.7M) are fully computable; five consecutive fully-adjusted observations are the exact P2 input and do not exist in-corpus.
  • acquisitions_cash reads $0 for every year in the canonical feed — a feed artifact contradicted by the audited 10-Ks (~$568M of cash acquisitions FY2020–FY2025); SPS must not be treated as a zero-M&A name.
  • balance_sheet_class returned "unknown" (feed missing FY2025 debt/cash); classified fortress from the primary FY2025 balance sheet (cash $151.4M, no funded debt), corroborated by consensus net cash of -$172.4M.
  • No explicit US-vs-China revenue split is disclosed — the S1 not-flagged conclusion is inferred from under-1% customer concentration and immaterial non-US property, not a stated China percentage.
  • SPS's TAM ($11.1B) is self-sourced from its own consultant with no independent market-size estimate in the corpus to triangulate the P1 runway.
  • Organic-vs-inorganic growth split is not reconstructable — SPS states in SEC correspondence it does not track revenue by new vs existing customers; the organic run-rate can be bounded (high-single-digits per management, ~5.3% forward per consensus) but not pinned.
  • Pre-drawdown (peak-era, mid-2024) consensus is not in the estimate feed (FY2025–FY2028 only), so the before-and-after consensus delta rests on the growth-rate reset and the six-month revision trail rather than a full peak-era snapshot.
  • Peak market cap ($8.155B) is a period-mixed derivation (2024-07-31 close x FY2024 diluted shares), so the -$5.37B / -65.8% mcap damage is approximate at the ~1% level.
  • Long-dated instruments (I1) unverifiable — a dated source confirming ≥12-month LEAPS with adequate open interest and spreads was not obtainable; current IV (51.74%, 2026-07-31) and options existence are verified.

Checked and unremarkable

No scout memo returned a routine or empty verdict — all eight (accounting/cash quality, business economics, capital allocation, competition/moat, history/track record, industry, people/governance, valuation/expectations) were load-bearing and fed the pillar work above.

Playbook version

Playbook fcf-dislocation, version 4 (spec playbook/fit-spec v2), frozen for this run.