Stop Measuring Technical Debt. Start Pricing It.
Seventeen engineering metrics and zero dollars kills proposals in thirty seconds — here's the carry-cost worksheet that turns one module into a line item.
4 min read · June 12, 2026
#Programming #SoftwareEngineering #SoftwareDevelopment #TechnicalDebt #Leadership

Last planning season I watched a VP reject a refactoring proposal in under thirty seconds.
Not because the proposal was wrong.
Because it contained seventeen engineering metrics and zero dollars.
Cyclomatic complexity. Sonar debt ratio. A heat map nobody in the room knew how to action.
Sonar turns orange. Planning forums stay gray.
Not a vocabulary problem. A translation problem. Technical debt becomes fundable only when you price the pain — not when you describe it more accurately. Miss that translation and you lose budget for the work that keeps the product alive.
The Proposal That Died in Thirty Seconds
Everyone in the room already knew what debt meant. Ward Cunningham gave us the metaphor decades ago; it did its job. Your VP has heard "we'll pay for this later" a hundred times. What they haven't heard is what later costs this year on the auth module your standup complains about every Tuesday.
The metaphor got you in the room. Carry cost gets you the line item.
The rejection wasn't ignorance. It was a format mismatch. Seventeen metrics, zero line items. Finance doesn't approve orange Sonar tiles. Finance approves reclaiming hours that currently fund workarounds — then multiplying by a rate someone in the room will argue about.
Stripe's Developer Coefficient study puts a scale on the pain before you open your own trackers — roughly 13.5 hours per developer per week on technical debt, another 3.8 on bad-code maintenance. A fifth of the work week, gone already.
You're not asking for new budget. You're naming money you already burn.
Metrics Die in the Boardroom — Dollars Don't
Engineering metrics aren't wrong. They're untranslated.
Complexity scores, smell counts, static-analysis debt ratios — none of these tell a product director what to defer this quarter. They can approve an annual carry cost on the auth flow that already ships three workarounds per sprint.
What survives:
- Hours per sprint lost to one module (ask four developers; count the workaround tickets).
- Annual carry cost — hours × fully-loaded rate × sprints per year.
- Payback — remediation weeks × rate, divided by annual carry (months to break even).
Save deployment frequency for slide two. Lead with dollars.
Principal is the refactor invoice. Carry cost is what you pay every year you don't write the check.
CFOs buy ongoing bleed. Engineers quote the surgery bill.
Flip the order or keep losing thirty-second votes.
The Carry-Cost Worksheet — Legacy Auth, Real Dollars
Legacy auth: session service, password reset, token refresh — the module your standup already names. Assumptions you defend out loud.
Inputs
- Developers touching the module each sprint: 4
- Hours per developer per sprint lost to workarounds: 3
- Sprints per year: 26
- Fully-loaded hourly rate (salary + benefits + overhead): $200
Carry cost (annual)
4 × 3 × 26 × 200 = $62,400 / year
Principal (one-time remediation)
One developer, four weeks: 4 × 40 × 200 = $32,000
Payback
32,000 ÷ 62,400 ≈ 6.2 months
Lead with $62,400 every year you don't fix it. Not $32,000 to fix it.
Inaction should feel expensive — not the fix.
Wrong rate? Good — show the math and let finance fix the input. You're building a shared model, not defending a perfect model.
Reclaimed Capacity — Not a Headcount Cut
DORA's research on unnecessary rework keeps the pitch survivable. Reclaimed hours are capacity — not a layoff calculator.
Low-performing orgs burn most of their time on reactionary work. Sometimes as little as ~30% on new features. The ask isn't "fire someone." Ship two more epics with the same payroll.
Practical proposal that survives quarterly review:
- Standing allocation: 15–20% of engineering capacity for debt and enabling work, reviewed every quarter.
- One visible metric: sum of open carry costs trending down; velocity or lead time trending up beside it.
- One module per quarter with a completed worksheet — not a wiki graveyard.
Hours-to-dollars is the proof starter leadership keeps asking for. Give them one module before you give them a portfolio.
The One-Slide Version
When attention is thin:
- Module — Legacy auth (session service, password reset, token refresh)
- Annual carry — $62,400 (assumptions footnoted)
- Payback — 6.2 months after $32,000 remediation
At $150/hour it's still $46,800/year. Order of magnitude is what gets you on the roadmap.
Someone says "we'll fix it in the rewrite"? Fine — footnote cost of delay: every quarter you defer, you pay carry and ship fewer differentiators. One sentence. Not a second deck.
What Changes Monday
Pick the module that burned your last retro. Survey four developers for workaround hours. Plug in a fully-loaded rate even if it's round.
Failure mode: team-wide debt as one giant blob. One module. One worksheet. One quarterly win. Stack those and the portfolio story builds itself.
Measure it and you'll present.
Price it and you'll fund.
Skip the number and you'll lose the vote again next planning season.
More in Lead
What Tech Leads Actually Do (It's Not Architecture)
The role before the title — what changes the day you become the lead and what doesn't
6 min · June 5, 2026