This project has been archived by its maintainers, and is no longer receiving any updates.
gallop
install · quick start · docs
Skills that make your coding agent think like a product data scientist.
They decide if a question deserves an analysis, pick the method, and check the result.
Install
# Claude Code: the skills, and gallop's MCP server run through uvx (needs uv)
/plugin marketplace add 0trm/gallop
/plugin install gallop@gallop
# Any other agent, or none: a skill is a directory of markdown
git clone https://github.com/0trm/gallop
cp -r gallop/skills/reading-experiments .claude/skills/
# The package; the import name is gallop
pip install gallop-pds
Quick start
One command, a synthetic dataset, and every check once:
python3 -m gallop.examples.quickstart
The full loop, from a question arriving to the prior store changing on disk, is python3 examples/end-to-end/run_loop.py.
In a notebook, the routing tree and the checks draw in the cell:
from gallop.front import notebook as gn
gn.route() # the open ride touched last, else the last
gn.run("trust", "srm", counts="arms.csv") # a check, as gallop trust srm prints it
The drawing is saved in the notebook's output, so a shared .ipynb carries the ride's question and answers.
| Bucket | Asks | Hands back |
|---|---|---|
| Description | What happened? | A hypothesis |
| Causation | Did this change cause that? | An effect size |
| Prediction | What will happen? Who gets what? | A forecast, a ranking, an allocation |
Map
A question enters at the left and leaves as a decision. Measurement is a foundation because what ships changes the data. Theory is a ceiling because what you learn has to outlive the test that produced it.
Skills
| Skill | What it decides | Reach for it when |
|---|---|---|
routing-questions |
Whether this becomes work at all, and which skill it becomes | a product, analytics, or experimentation request first arrives, when someone asks for a deep dive or a dashboard, or before opening a query editor on any question about impact, lift, or whether something worked |
defining-metrics |
A metric turned into a computation, a source of truth, a registry entry, and a statement of how it will be gamed | defining a north-star or guardrail metric, when two dashboards disagree on the same number, when arbitrating between conflicting metric definitions, or when a readout depends on a metric nobody has validated |
sizing-opportunities |
A what-happened question turned into a localised, sized hypothesis, with the floor checked first and the gap never quoted as the prize | a metric moved and someone asks what happened, when asked for a deep dive, a funnel or segment analysis, a root cause, or an opportunity size before a roadmap commitment, or when an observed gap between two groups is about to be quoted as the value of closing it |
designing-experiments |
The four choices that cannot be repaired after launch, with the MDE from the prior store | planning, powering, or pre-registering an experiment, when deciding whether a question is testable at the available traffic, or when a feature is about to ship without a flag |
reading-experiments |
Whether the result is a result: SRM, exposure, the sequential bound, CUPED, shrinkage | analysing or reviewing A/B test results, when a test looks like a winner, when someone reports a lift, or when deciding whether to ship on an experiment readout |
choosing-causal-designs |
The method that matches how assignment happened, and the exit that says there is no comparison group | measuring the impact of something already rolled out, a launch, a migration, a pricing change, or a campaign that reached everyone at once |
automating-decisions |
Whether a forecast or a repeated decision belongs to a model, validated out of time, and the holdout that measures its impact | someone asks for a churn, propensity, LTV, scoring, forecasting, uplift, recommendation or allocation model, when a model's offline accuracy is offered as evidence that something worked, or when deciding who gets an offer, a discount or an intervention |
writing-readouts |
The decision rule first, the result last; the belief filed where the next question starts | a test finishes, when documenting a shipped or killed decision, when writing up a null result or a rollback, or when a question needs an entry someone can find in a year |
License
MIT. What it covers, what gallop does with your data, and how to contribute: docs/model.md.
Metadata
Release files for gallop-pds 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gallop_pds-0.5.0.tar.gz | 166.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gallop_pds-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 359.2 kB
Release files / gallop_pds-0.5.0.tar.gz
| Download URL | gallop_pds-0.5.0.tar.gz |
|---|---|
| Size | 166.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f5312109454099382958ebe9c63b6eab59e08c33e89b36f0f74b78d755d7435
|
|
BLAKE2b-256 checksum How to use checksums |
951ea00547b847b970cd2ad10dd84e19640aa419f50f5a53064d44f8e4d02d64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / gallop_pds-0.5.0-py3-none-any.whl
| Download URL | gallop_pds-0.5.0-py3-none-any.whl |
|---|---|
| Size | 193.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d58051411556f6627ed2c90af342dd921ee78fd89afee686265621543aaefea4
|
|
BLAKE2b-256 checksum How to use checksums |
b2ca3cde2bbf36a3c2e44177a3720abdcc442f4d22b50afb1518ee0307f43233
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log