dbt-score
Linter for dbt metadata.
What it is and what it does
dbt-score is a linting and scoring tool for dbt projects that evaluates model metadata quality against configurable rules. It assigns numerical scores (0-10) to individual models and computes an overall project score, helping data teams enforce consistent documentation, testing, naming, and structural standards across their dbt codebase.
The tool runs from the command line, reads your dbt manifest, and reports violations organized by severity and rule type. It integrates with CI/CD pipelines by exiting with success or failure status based on configurable thresholds, and supports selective linting via dbt's selection syntax. Configuration happens in pyproject.toml, where you can disable rules, adjust severity levels, customize scoring badges, and set pass/fail thresholds for both individual models and the overall project.
Use it for:
- Enforce documentation standards in CI/CD by failing builds when models lack descriptions or owners
- Track data quality improvements over time by monitoring project scores and individual model ratings
- Prevent technical debt by catching overly long SQL queries and models without adequate test coverage
- Create custom rules to enforce organization-specific naming conventions or governance metadata
- Lint only recently changed models or specific project sections using dbt selection syntax
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
dbt-score lints dbt models against configurable rules for documentation, testing, naming, and structure, assigning numerical quality scores to individual models and projects.
Yes. dbt-score addresses a real gap in dbt project governance—automated enforcement of metadata quality at scale. It has low install friction, permissive licensing, no known vulnerabilities, active maintenance, and integrates naturally into existing dbt workflows. Install it if your team maintains multiple dbt models and wants programmatic quality gates; skip it only if your project is too small to benefit from standardized linting.
Install
dbt-score on PyPI
pip
pip install dbt-scoreuv
uv add dbt-scorepoetry
poetry add dbt-scoreInstalling dbt-score
Before you install
Installs cleanly with only two lightweight runtime dependencies (click and tomli). Marked as active maintenance with a recent release in 2026.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install dbt-score
# From your dbt project root:
dbt-score lint
# With configuration in pyproject.toml:
[tool.dbt-score]
fail_project_under = 7.5
fail_any_item_under = 8.0
Requires Python 3.10 or later and dbt-core 1.5 or later installed in the same environment.
Verify before relying
- Whether the built-in rule set covers your organization's specific data quality standards or if custom rules are required
- Performance characteristics when linting large dbt projects with hundreds or thousands of models
- Integration experience with specific dbt-core versions beyond the stated 1.5+ requirement
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — click, tomli |
| Maintenance | actively maintained — 129 days since the last release |
| First released | |
| Downloads | 121,571/month — #11,976 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dbt_score-0.16.0-py3-none-any.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
dbt-bouncerdbt-bouncer validates dbt projects against…
permissive · top 15,000 on PyPI
dbt-loomdbt-loom is a dbt Core plugin that fetches…
unclear · top 15,000 on PyPI
sqlfluff-templater-dbtEnables SQLFluff to lint and auto-fix dbt…
permissive · top 5,000 on PyPI
dtlpymetricsCalculates and generates quality scores for…
unclear · top 15,000 on PyPI
dbt-clickhouseA dbt adapter that enables data transformation…
permissive · top 5,000 on PyPI
dbt-semantic-interfacesProvides shared semantic class definitions,…
permissive · top 1,000 on PyPI
gitlint-coreLints Git commit messages against configurable…
permissive · top 5,000 on PyPI
dbt-coredbt-core transforms raw data in a warehouse…
permissive · top 1,000 on PyPI
j2lintj2lint validates Jinja2 template syntax and…
permissive · top 15,000 on PyPI
ickIck is a polyglot tool for bundling best…
permissive · top 15,000 on PyPI