Skip to main content

PIPPEN

Player Impact from Pooled Priors and Estimated Noise.

Reliability-adjusted NBA player impact estimates, with calibrated uncertainty.

CI License Python

Status: pre-release. The data layer and the metric are under active construction. Nothing here is stable yet, and no results have been published.


What this is

Public NBA impact metrics disagree with each other, and none of them tells you how much to trust any single number. This project treats the existing metrics as noisy measurements of one quantity that nobody observes directly: a player's true contribution to point differential.

That reframing turns player evaluation into a measurement-error problem, which statistics has known how to solve for a century. The pipeline:

  1. Compute RAPM (Regularized Adjusted Plus-Minus) from possession-level play-by-play, so the project owns its own ground truth rather than borrowing a paywalled one.
  2. Measure how reliable each input metric actually is, by splitting each player's season into odd and even games and correlating the halves.
  3. Fuse the metrics by inverse-variance weighting, so noisier measurements count for less.
  4. Report the result as a value and an interval, because a rookie with 200 minutes and a starter with 2,400 minutes should not be quoted with the same confidence.

Scottie Pippen is the point of the name. He is the canonical player whose box score understated what he did, and whose value showed up in what happened to the team when he played. That gap is the thing this project measures.

What this is not

  • Not a betting tool. No odds, no spreads, no bankroll advice.
  • Not a replacement for DARKO or EPM. Those are excellent and this project measures itself against them rather than claiming to beat them.
  • Not a redistribution of anyone's paid data. See Data and licensing.
  • Not validated yet. The headline claim below is a hypothesis under test, not a result.

The claim under test

Does PIPPEN predict next-season team net rating better than any single input metric does, out of sample?

If the answer is no, the fusion added nothing, and this README will say so. Stating a falsifiable claim before running the experiment is the point.


Installation

pip install pippen

Development install, using uv:

git clone https://github.com/AlphaNerdFx/pippen
cd pippen
uv sync --extra dev
uv run pippen --help

Optional extras: sources (data downloaders), fit (model fitting), api, dashboard, docs.

Quickstart

pippen paths                              # where data will be cached
pippen fetch  --seasons 2015-2024         # download play-by-play and box scores
pippen rapm   --seasons 2015-2024 --window 3
pippen train
pippen evaluate                           # runs the claim under test

Data and licensing

The code is Apache-2.0. Published data artifacts are CC BY 4.0.

The rule this project follows without exception:

If a value was not computed from a source that permits redistribution, it does not go into a release.

Input Source Position
RAPM (own) Computed from possession data Ours. Published.
Four Factors, Net Rating, box-score rates hoopR-nba-data, CC BY 4.0 Published, with attribution.
Tracking features nba_api Derived features only. Raw responses are never redistributed.
BPM, VORP, Win Shares Basketball-Reference Local validation only. Never in a release artifact.
EPM, DARKO Dunks & Threes, darko.app Not used. Paywalled or unlicensed. Compared by rank correlation only.

NBA data carries usage restrictions. This project is for personal and research use. Commercial use of the underlying league data requires licensing from the rights holders, which this project does not grant and cannot grant.

Attribution

Bulk historical play-by-play comes from hoopR-nba-data by the SportsDataverse authors, used under CC BY 4.0. Possession and lineup reconstruction uses pbpstats by Darryl Blackport, MIT licensed.


Documentation

Full documentation, including the method write-up and its limitations, lives at https://alphanerdfx.github.io/pippen/.

  • Method — how reliability is measured and how fusion works
  • Architecture — pipeline stages and data layout
  • Research notes — the background survey this project grew from

Contributing

Contributions are welcome. Start with CONTRIBUTING.md, and note that this project ships a Code of Conduct.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for pippen 0.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pippen 0.0.0
File Size Uploaded Provenance
pippen-0.0.0.tar.gz 576.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pippen 0.0.0
File Interpreter ABI Platform
pippen-0.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 590.4 kB

Release files / pippen-0.0.0.tar.gz

Download URL pippen-0.0.0.tar.gz
Size 576.2 kB
Tags Source
SHA-256 checksum
How to use checksums
56847328458e3efe29c66e4a80b1404e26b5b457281cc834e9d4d23d14401bad
BLAKE2b-256 checksum
How to use checksums
421901f918cfb3dbeedcd1b98ca613986b1753f454db6e910e9121e1b24afbf4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pippen-0.0.0-py3-none-any.whl

Download URL pippen-0.0.0-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89607836e04b9969efa5c45d68a8e2978677f41c99e231840c91d5443b4c2757
BLAKE2b-256 checksum
How to use checksums
f202edbe0e2e9833c43281de809d2c28f91be2a6f5964bb9b7429b00d43057e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pippen 0.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page