Tech Debt Metrics Guide

You cannot manage what you do not measure. A practical guide to the metrics that actually track technical debt — what to collect, where to get it, and what "healthy" looks like.

Free reference guide No signup required DORA + code quality frameworks

Technical Debt Ratio (TDR)

The foundational metric. TDR = (remediation cost ÷ development cost) × 100. It expresses debt as a share of what it would cost to fix relative to what it cost to build — the same denominator finance teams already think in.

TDR bandStatusRecommended action
Below 5%HealthyNormal engineering hygiene — no dedicated allocation needed.
5–10%ManageableAllocate 10–15% of sprint capacity to debt reduction.
10–20%ElevatedAllocate 20%+ of sprint capacity; consider a dedicated initiative.
Above 20%CriticalNeeds an executive-sponsored remediation plan.

DORA metrics & their debt connection

The four DORA (DevOps Research and Assessment) delivery metrics don't measure debt directly — but debt is very often the root cause behind a poor score on all four.

MetricEliteLowHow debt shows up
Deployment frequencyOn-demand (multiple/day)Fewer than once / 6 monthsDebt slows CI/CD pipelines and increases release risk, forcing batching.
Lead time for changesUnder 1 day1–6 monthsTight coupling forces multi-system changes and heavy review friction.
Change failure rate0–15%46–60%Low test coverage and high complexity increase defect escape rate.
Mean time to recoveryUnder 1 hour1 week – 6 monthsPoor observability and tangled dependencies slow root-cause analysis.

Source: Google / DORA State of DevOps, 2019–2024.

Velocity & throughput metrics

MetricHealthy targetWhat it tells you
Story points per sprintStable or growingA sustained downward trend is the clearest velocity-decline signal.
Defect escape rateBelow 10%Share of bugs found in production rather than pre-release.
Bug-to-feature ratioBelow 20%Rising ratio means more time defending existing code than building.
Time-to-mergeUnder 24 hoursLong review cycles often trace back to complexity and low confidence.

Code quality metrics

MetricHealthy targetTypical source
Cyclomatic complexityUnder 10 per functionSonarQube, CodeClimate, static analysis
Code churn rateUnder 15%GitHub / GitLab analytics
Test coverage by module60–80%CI coverage reports
Dependency freshness80%+ on latest major/minorRenovate / Dependabot dashboards

The recommended monthly dashboard

Track 8 metrics monthly — enough to see trends, not so many that nobody looks at the dashboard. Split evenly between what engineering watches day-to-day and what the business needs to see.

Engineering-focused

Technical Debt Ratio (TDR)

DORA deployment frequency

Test coverage

Code churn rate

Business-focused

Annual debt cost

Velocity trend

Incident rate / MTTR

FTE wasted on debt

Collection methodology

Metric typeTypical source
Complexity, churn, coverageSonarQube / CodeClimate / static analysis
Deployment frequency, lead timeGitHub / GitLab / CI-CD analytics
Incident rate, MTTRIssue tracker (Jira, Linear) incident reports
Time spent on debt / workaroundsTeam survey estimates (self-reported, quarterly)

Common measurement pitfalls

01
Tracking too many metrics

15+ metrics on a dashboard means nobody actually looks at it. Pick 8, review monthly, and add more only if a specific question demands it.

02
Relying solely on test coverage

High coverage with weak assertions gives false confidence. Pair coverage with defect escape rate and team confidence surveys.

03
Measuring debt without tracking improvement

A snapshot score is far less useful than a trend line. Re-measure on a fixed cadence so the direction of travel is visible.

04
Collecting data without acting on it

Metrics that don't connect to a specific decision (what to fix next, how much capacity to allocate) become theater. Tie every dashboard metric to an action threshold.

// Ready to put a number on it?

Turn these metrics into a dollar figure.

Once you're tracking these, the Cost Calculator and Assessment scorecard turn them into a number your business case can use.