Skip to main content

Dataset drift detection for ML pipelines.

Project description

psiwatch

Dataset drift detection for ML pipelines.

Know when your data changes. Before your model breaks.

PyPI License Python Zero Dependencies


What it does

You train a model on last year's data. Six months later it starts making wrong predictions. The reason? Your data changed. Scores dropped. New categories appeared. Distributions shifted.

psiwatch catches this. Point it at your old data and new data — it tells you exactly what drifted, how badly, and gives you a single health score.

psiwatch compare train.csv production.csv

Install

pip install psiwatch

CLI Usage

psiwatch compare old.csv new.csv
psiwatch compare old.csv new.csv --output report.html
psiwatch compare old.csv new.csv --output report.json
psiwatch compare old.csv new.csv --columns age,score,city

Library Usage

import psiwatch

# From CSV files
psiwatch.compare("old.csv", "new.csv")

# Save as HTML
psiwatch.compare("old.csv", "new.csv", output="report.html")

# From Python dicts
psiwatch.compare_data(
    old={"age": [22, 23, 21], "city": ["Chennai", "Delhi", "Mumbai"]},
    new={"age": [28, 30, 29], "city": ["Chennai", "Bangalore", "Hyderabad"]}
)

# From plain lists
psiwatch.compare_columns([22, 23, 21], [28, 30, 29], name="age")

# Raw results
result = psiwatch.analyze("old.csv", "new.csv")
print(result["health_score"])  # 0-100

Detection Methods

Column Type Methods
Numeric Mean shift, Std shift, PSI, Percentile comparison
Categorical New category detection, Frequency shift, PSI, Chi-square

Drift Health Score

Score Status
80 - 100 Stable
50 - 79 Moderate Drift
0 - 49 Significant Drift

Zero Dependencies

Pure Python only. No numpy, pandas, or scipy. Runs anywhere Python runs including Termux on Android.


License

MIT © 2026 Tharun · Naeris

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psiwatch-0.6.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psiwatch-0.6.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file psiwatch-0.6.0.tar.gz.

File metadata

  • Download URL: psiwatch-0.6.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.34.2

File hashes

Hashes for psiwatch-0.6.0.tar.gz
Algorithm Hash digest
SHA256 a0c95dca01f6a238710008d34ba047aa231816a6cb958326b70d6ee68ed81259
MD5 7fd8afb72dd11b6d4e348d647f4d9734
BLAKE2b-256 d62c2077159c750826f021a89ad27738a4cb81df5f082b79eed70876e9ddedcc

See more details on using hashes here.

File details

Details for the file psiwatch-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: psiwatch-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.34.2

File hashes

Hashes for psiwatch-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57163e58a19d396bbd8e7961ff8e1a0df1e58e884d18b65c448d5f5eafdff35e
MD5 68a241f6e55bd7347afbd114537ee540
BLAKE2b-256 301b03054a23c8675eac8c6c266854c90f027603af225ed371302547286cdd86

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page