svy
Modern Python tools for complex survey analysis, built for real-world statistical workflows.
svy is a rigorously design-based, production-oriented library for survey design, weighting, and estimation.
🌐 Website: svylab.com 📘 Documentation: svylab.com/docs/svy 📦 Source: github.com/samplics-org/svy
What is svy?
svy is designed for people who actually work with complex survey data, including national statistical offices, public health and development programs, survey methodologists, and data scientists working with complex samples.
Correct inference first — without hiding assumptions or sacrificing usability.
Validation
svy has been validated against R's survey package, producing numerically identical results (to at least six significant digits) across Taylor linearization, replication methods, and complex survey designs — except where svy adopts a different, justifiable adjustment by design, most of which align with the conventions used in established software such as Stata. See the full comparison.
Installation
pip install svy # svy[report] for rich outputs
or
uv add svy
A base install makes no network calls: its example datasets are the subsets packaged with svy. svy[remote] adds downloads of the full example datasets from the svyLab catalog; svy[all] installs both extras.
Coding agents. svy ships agent skills: guidance for coding agents such as Claude Code, matching the installed version. Run this once per project, from the project folder:
uv run svy-skills # or svy-skills with the environment active; svy.skills.install() from Python
It links the skills into .claude/skills/, so upgrading svy updates them. Rerun it when a release adds a skill or after recreating the environment; --copy copies them instead, e.g. to commit them.
Quick Start
import svy
# Load example data
hld_data = svy.datasets.load("hld_sample_wb_2023")
# Define the survey design
hld_design = svy.Design(stratum=("geo1", "urbrur"), psu="ea", wgt="hhweight")
# Create a sample object
hld_sample = svy.Sample(data=hld_data, design=hld_design)
# Estimate the mean of total expenditure
tot_exp_mean = hld_sample.estimation.mean(y="tot_exp")
print(tot_exp_mean)
Capabilities
- Complex survey design — strata, clusters, weights
- Design-based estimation with valid standard errors
- Replication methods — BRR, bootstrap, jackknife, SDR
- Categorical data analysis — tabulation, crosstabulation, t-test, Rao-Scott test
- Generalized linear models — logistic, Poisson, Gamma with survey weights
- Explicit, inspectable, reproducible outputs
- Built on Polars, NumPy, SciPy, and msgspec
Related Packages
| Package | Purpose | Install |
|---|---|---|
| svy | Core survey design & estimation | pip install svy |
| svy-sae | Small Area Estimation | pip install svy-sae |
| svy-io | SPSS / Stata / SAS I/O | pip install svy-io |
Documentation
Full documentation, tutorials, and methodological notes: 👉 svylab.com/docs/svy
Feedback
- Issues: github.com/samplics-org/svy/issues
- Discussions: github.com/samplics-org/svy/discussions
License
MIT License — Copyright © 2026 Samplics LLC
Metadata
Release files for svy 0.34.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 | |
|---|---|---|---|
| svy-0.34.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| svy-0.34.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.4 MB
Release files / svy-0.34.0.tar.gz
| Download URL | svy-0.34.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1325619e008cdb61fabf9bddf8ff478afc360ec07654e8a8b9a4fe9be5f4cf1d
|
|
BLAKE2b-256 checksum How to use checksums |
28dda99ffd31b5e0f6002649e780e156a8d052c2670568748df08438a2d009da
|
| 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 Oct 15, 2026.
Transparency logRelease files / svy-0.34.0-py3-none-any.whl
| Download URL | svy-0.34.0-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc907d865ecbd5d343d905f88fc858767d30d038d346df5c97892bbf66e17472
|
|
BLAKE2b-256 checksum How to use checksums |
85967fc84eb0053c28359a5dca5f38fdf6bf2454c04f8dc9dede894901e91d4f
|
| 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 Oct 15, 2026.
Transparency log