Markets and trading · Edition No. 1 · 21 Aug 2026

stumpy-dev/stumpy

Computes the matrix profile of a time series, finding repeated shapes and unusual moments without being told what to look for.

← Markets and tradingRead the whole edition →
STUMPY: finds the shapes that repeat. Finds repeats and oddities in a long series.

4.2k stars · BSD-3-Clause · v1.14.1 (2026-02-08) · Track this in Rising ↗

Matrix profile — finds every repeating shape and every anomaly in a long time series without being told what to look for.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive90

Last code pushed 16 Oct 2026, 11 days before this check.

Releases50

Latest release v1.14.1 on 8 Feb 2026.

Maturity90

Public since May 2019, a little over 7 years.

Adoption72

4,168 stars and 373 forks.

Activity65

40 commits and 7 new issues in the last 90 days.

Community80

46 contributors. 28 pull requests merged in 90 days.

Security40

No security policy file says how to report a problem. No published security advisories.

Licence BSD-3-Clause: permissive: use it for anything, keep the noticeSetup effort 3 of 5Payoff 4 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 1.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You pass it an array of numbers and a window length. It computes the matrix profile, which for every window in the series records how far it is from its nearest match elsewhere. Low values mark repeated shapes, called motifs; high values mark unusual stretches, called discords. From that one computation you get both. It scales to millions of points using Numba, which compiles Python to machine code, and can spread the work across processor cores, several machines with Dask, or a graphics card. There is also a match function that detects a known shape in new data as it arrives, and support for multiple series at once. What it does not do is tell you anything about the future: it reports which shapes recur, and most recurring shapes carry no predictive value, so filtering is on you.

Why it matters

Who it suits. Anyone with a long series of measurements and a suspicion that something in it repeats: price data, sensor readings, server metrics, demand figures. The appeal is that it needs no labels, no training and no machine-learning background. It suits anyone who would otherwise be guessing at indicator combinations. Skip it if the series is short, because the method needs length to find repetition. Skip it too if you expect strategies rather than candidates, because what comes out is a list of shapes and nothing more.

Verdict. Worth an afternoon if you have the data, with expectations set correctly. The honest framing is that it inverts the usual approach: instead of proposing a pattern and testing it, you ask the data which patterns exist and then test those. That is a better use of time, and it is still only the first half of the work. At 4,139 stars it is well established with a real maintainer team, the licence is BSD-3-Clause, which places no restriction on shipping it inside a commercial product, and version 1.14.1 was released on 8 February 2026 with code on 31 July 2026. A release that old would be worrying on its own, and it is not: the code date is the one that counts, and seven months between releases is normal for a mature library. Two limits. Memory and processor use scale with the length of the series, so three years of minute-by-minute data is roughly a million points and will need chunking. And choosing the window length is a judgement that changes every result downstream, so expect to try several.

Stars4.2k
LicenceBSD-3-Clause
Latestv1.14.1 (2026-02-08)checked 7 Sep 2026
Written inPython
Needsa GPU and Python 3
RunsLocally, on your own machine
Summary (Key Points)from the README
Key features
  • Matrix profile computation: For every subsequence in a time series, finds its nearest neighbor, which is the basis for the mining tasks below.
  • Mining tasks: The matrix profile supports motif discovery, anomaly (discord) discovery, shapelet discovery, semantic segmentation, streaming data, and time series chains.
  • Approximate and summary methods: Offers fast approximate matrix profiles and snippets for summarizing long time series.
  • Window size selection: Provides pan matrix profiles to help choose the best subsequence window size(s).
  • Multiple backends: Includes single-CPU (`stump`), Dask Distributed (`stumped`), GPU (`gpu_stump`), multi-dimensional (`mstump`), and distributed multi-dimensional (`mstumped`) functions.
  • Chains and segmentation helpers: Includes Anchored Time Series Chains (ATSC) and Fast Low-cost Unipotent Semantic Segmentation (FLUSS).
  • Numba-compiled speed: The exact matrix profile runs as a Numba JIT-compiled version; the benchmark table uses a constant window size of m = 50.
  • Largest benchmarked run: The README reports GPU-STUMP.DGX2 (16x NVIDIA Tesla V100) computing a 2^27 (134,217,728)-point series in 29:13:48.12.
Ways to install
Platform or methodWhat it needsEffort
condaA conda environment (conda-forge package)Low
pipA Python environment with pip (PyPI package)Low
pixiThe pixi toolLow
uvThe uv toolLow
From sourceSteps in the documentation; the README gives no detail hereHigher
Important
  • Python version: STUMPY supports Python 3.11+ and is not compatible with Python 2.x. Older Python versions may work but are unsupported.
  • Dependencies: It depends on NumPy, Numba, and SciPy. Supported NumPy and Python versions follow the NEP 29 deprecation policy.
  • Benchmark conditions: Performance results use randomly generated data, specific CPU and GPU hardware, and include host-to-GPU transfer time. They may not match your setup.
  • Unexplained NaN cells: The performance table contains many NaN entries, and the README does not say what they mean.
  • Original papers: The authors recommend reading the original matrix profile publications to understand the algorithms and their applications.
  • Support: Help is available through GitHub discussions and issues, with responses described as reasonably timely rather than guaranteed.
  • License and trademark: The code is released under the 3-Clause BSD license. "STUMPY" is a trademark of TD Ameritrade IP Company, Inc.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
3 / 5
Payoff
4 / 5
Good
  • Finds repeated shapes with no labels, no training and no machine-learning background needed.
  • BSD-3-Clause licence, so there is no restriction on including it in a commercial product.
  • Well documented with a real maintainer team, and it scales from one processor to many machines or a graphics card.
Watch for
  • Memory and processor use grow with the length of the series, so long histories need chunking.
  • Raw repeated shapes are not strategies: most carry no predictive value, so heavy filtering follows.
  • Choosing the window length is a judgement call that changes everything after it.
Works well with

Pair with kernc/backtesting.py to test each surviving motif.

Install
python3 -m venv venv
source venv/bin/activate
python -m pip install stumpy
# or: conda install -c conda-forge stumpy
Screenshots
stumpy-dev/stumpy: GitHub preview card

On Stack Radar: Trading & Investing › Market Research & Analysis › Market Forecasting.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.