Devoured - April 23, 2026
dbt-score (GitHub Repo)

dbt-score (GitHub Repo)

Data Read original

dbt-score is a linter that scores data transformation models on metadata quality to enforce documentation, testing, and governance standards across growing dbt projects.

What: A linting tool for dbt projects that evaluates models against configurable rules for documentation completeness, test coverage, ownership metadata, naming conventions, and SQL complexity, assigning numerical scores (0-10) to individual models and entire projects.
Why it matters: As dbt projects scale to hundreds or thousands of models, inconsistent documentation and missing tests become major problems; this tool provides automated quality checks that can fail CI/CD builds when standards slip, preventing technical debt accumulation.
Takeaway: Install via pip in your dbt-core environment and run `dbt-score lint` from your project root to get immediate quality feedback, or integrate into CI pipelines with fail thresholds.
Deep dive
  • Provides a 0-10 scoring system for both individual dbt models and overall project health, with configurable badge thresholds (gold/silver/bronze icons)
  • Ships with built-in rules covering common needs: column descriptions, model documentation, ownership metadata, test presence, and SQL line count limits
  • Supports custom rules written as simple Python functions using decorators, enabling organization-specific governance requirements (e.g., requiring business owner metadata)
  • Configuration via pyproject.toml allows setting CI fail thresholds, disabling specific rules, adjusting rule severity levels, and customizing rule parameters
  • Integrates with dbt's native selection syntax for targeted linting (e.g., --select staging.* for staging models only, --select state:modified for changed models)
  • Can auto-generate the dbt manifest via --run-dbt-parse flag, eliminating the need for separate dbt parse step
  • Exit codes (0 for pass, 1 for fail) make CI/CD integration straightforward across different platforms
  • Warnings include severity levels (low/medium/high) and specific guidance on what's missing (e.g., which columns lack descriptions)
  • Addresses real scaling problems: inconsistent documentation, missing tests on critical models, naming convention violations, and compliance metadata gaps
  • Requires Python 3.10+ and dbt-core 1.5+, installed in the same environment as dbt
Decoder
  • dbt (Data Build Tool): An open-source framework for transforming data in warehouses using SQL SELECT statements, organizing data pipelines as versioned models
  • Linter: A static analysis tool that checks code or metadata against style rules and best practices without executing it
  • Manifest: A JSON file generated by dbt containing metadata about all models, tests, and dependencies in a project
Original article

dbt-score is a linter for dbt metadata quality. It scores models and projects against rules for docs, tests, ownership, naming, and SQL complexity, so teams can enforce standards in CI/CD and catch weak models early. It supports custom rules for org-specific governance.