GitScrum / Docs
All Best Practices

Technical Debt Tracker Ledger | Quantify and Pay Down

Track technical debt like finances: principal, interest, and balance. GitScrum tracks debt items with severity labels, effort points, and sprint allocation.

7 min read

Technical debt accumulates silently until it cripples delivery. Treating debt like a financial ledgerβ€”tracking what you owe, interest rates, and paymentsβ€”provides visibility that enables strategic decisions. GitScrum helps teams maintain a technical debt ledger that makes debt visible and manageable.

Debt Ledger Concept

TermMeaningExample
PrincipalEffort to fix8 story points
InterestOngoing cost2 pts/sprint slowdown
BalanceTotal debt81 points
PaymentWork done6 pts this sprint

The Technical Debt Ledger

DEBT LEDGER STRUCTURE
═════════════════════

LEDGER ENTRY TEMPLATE:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DEBT ITEM: [Name]                                           β”‚
β”‚ ID: DEBT-001                                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                             β”‚
β”‚ CLASSIFICATION:                                             β”‚
β”‚ β”œβ”€β”€ Category: Architecture / Code / Test / Docs            β”‚
β”‚ β”œβ”€β”€ Severity: Critical / High / Medium / Low                β”‚
β”‚ β”œβ”€β”€ Age: 6 months                                          β”‚
β”‚ └── Owner: Backend Team                                     β”‚
β”‚                                                             β”‚
β”‚ FINANCIALS:                                                 β”‚
β”‚ β”œβ”€β”€ Principal: 13 points (effort to fix)                   β”‚
β”‚ β”œβ”€β”€ Interest Rate: 3 pts/sprint (ongoing cost)             β”‚
β”‚ β”œβ”€β”€ Total Interest Paid: 18 pts (3 Γ— 6 sprints)            β”‚
β”‚ └── Break-even: 4.3 sprints                                β”‚
β”‚                                                             β”‚
β”‚ IMPACT:                                                     β”‚
β”‚ β”œβ”€β”€ Affects: User service, Order service                   β”‚
β”‚ β”œβ”€β”€ Symptoms: Slow builds, frequent bugs                   β”‚
β”‚ └── Risk: Increases with each change                       β”‚
β”‚                                                             β”‚
β”‚ STATUS:                                                     β”‚
β”‚ β”œβ”€β”€ Current: Accruing interest                             β”‚
β”‚ β”œβ”€β”€ Planned: Sprint 25                                     β”‚
β”‚ └── Payments: None yet                                     β”‚
β”‚                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

GitScrum Debt Tracking Setup

SETTING UP DEBT TRACKING
════════════════════════

STEP 1: CREATE LABELS
─────────────────────────────────────
Labels for categorization:
β”œβ”€β”€ [debt:architecture]
β”œβ”€β”€ [debt:code-quality]
β”œβ”€β”€ [debt:testing]
β”œβ”€β”€ [debt:documentation]
β”œβ”€β”€ [debt:infrastructure]
└── [debt:security]

Severity labels:
β”œβ”€β”€ [severity:critical]
β”œβ”€β”€ [severity:high]
β”œβ”€β”€ [severity:medium]
└── [severity:low]

STEP 2: CREATE DEBT EPIC
─────────────────────────────────────
Epic: Technical Debt Ledger Q1 2025

Description:
β”œβ”€β”€ Total Balance: 81 points
β”œβ”€β”€ Sprint Allocation: 8 pts/sprint
β”œβ”€β”€ Target Reduction: 40%
└── Review: Monthly

STEP 3: ADD DEBT ITEMS AS TASKS
─────────────────────────────────────
Each debt item becomes a task:
β”œβ”€β”€ Title: [DEBT] Description
β”œβ”€β”€ Labels: Category + Severity
β”œβ”€β”€ Effort: Principal points
β”œβ”€β”€ Description: Ledger details
└── Parent: Debt Epic

Debt Inventory Dashboard

TECHNICAL DEBT LEDGER - Q1 2025
═══════════════════════════════

SUMMARY:
─────────────────────────────────────
Total Balance:        81 points
Sprint Interest:      12 pts/sprint
Monthly Interest:     24 pts/month

BREAKDOWN BY CATEGORY:
─────────────────────────────────────
Architecture     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 32 pts (40%)
Code Quality     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘ 24 pts (30%)
Testing          β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 12 pts (15%)
Documentation    β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8 pts (10%)
Infrastructure   β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  5 pts ( 5%)

BREAKDOWN BY SEVERITY:
─────────────────────────────────────
Critical         β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8 pts (10%)
High             β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘ 24 pts (30%)
Medium           β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 32 pts (40%)
Low              β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 17 pts (21%)

TOP 5 HIGHEST INTEREST ITEMS:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ # β”‚ Item                      β”‚ Principal β”‚ Interest/Spr β”‚
β”œβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1 β”‚ Legacy auth system        β”‚ 21 pts    β”‚ 4 pts        β”‚
β”‚ 2 β”‚ Monolithic service        β”‚ 34 pts    β”‚ 3 pts        β”‚
β”‚ 3 β”‚ Missing integration tests β”‚ 13 pts    β”‚ 2 pts        β”‚
β”‚ 4 β”‚ Outdated dependencies     β”‚  8 pts    β”‚ 2 pts        β”‚
β”‚ 5 β”‚ Hard-coded config         β”‚  5 pts    β”‚ 1 pt         β”‚
β””β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Interest Calculation

CALCULATING DEBT INTEREST
═════════════════════════

WHAT COUNTS AS INTEREST:
─────────────────────────────────────
Interest = ongoing cost of NOT fixing

Measurable costs:
β”œβ”€β”€ Extra time on related features
β”œβ”€β”€ Bug fixes caused by debt
β”œβ”€β”€ Workaround maintenance
β”œβ”€β”€ Cognitive load
β”œβ”€β”€ Onboarding friction
└── Testing overhead

CALCULATION EXAMPLE:
─────────────────────────────────────
Debt: Hard-coded database connections

Principal (effort to fix):
β”œβ”€β”€ Refactor code: 3 pts
β”œβ”€β”€ Add config management: 2 pts
β”œβ”€β”€ Update environments: 1 pt
└── Total Principal: 6 pts

Interest (per sprint):
β”œβ”€β”€ Manual env changes: 0.5 hrs
β”œβ”€β”€ Related bugs: 0.5 pts avg
β”œβ”€β”€ Deployment friction: 0.25 pts
└── Total Interest: ~1 pt/sprint

Break-even: 6 sprints
Recommendation: Fix now

ROI CALCULATION:
─────────────────────────────────────
If Principal = 6 pts
And Interest = 1 pt/sprint
Then:
β”œβ”€β”€ After 6 sprints: Break even
β”œβ”€β”€ After 12 sprints: 6 pts saved
β”œβ”€β”€ After 24 sprints: 18 pts saved
└── Decision: Fix if runway > 6 sprints

Payment Strategies

DEBT PAYMENT APPROACHES
═══════════════════════

STRATEGY 1: HIGHEST INTEREST FIRST
─────────────────────────────────────
Pay down debt with highest interest rate

Like credit card payoff:
β”œβ”€β”€ Maximum velocity recovery
β”œβ”€β”€ Quick wins on efficiency
β”œβ”€β”€ Visible improvement fast
└── Recommended for most teams

STRATEGY 2: LOWEST PRINCIPAL FIRST
─────────────────────────────────────
Quick wins, clear items off ledger

Benefits:
β”œβ”€β”€ Momentum building
β”œβ”€β”€ Team motivation
β”œβ”€β”€ Reduced complexity
└── Good for morale

STRATEGY 3: OPPORTUNITY-BASED
─────────────────────────────────────
Pay when working in affected area

"Boy Scout Rule":
β”œβ”€β”€ Leave code better than found
β”œβ”€β”€ Low overhead
β”œβ”€β”€ Natural integration
└── Sustainable pace

RECOMMENDED: HYBRID APPROACH
─────────────────────────────────────
β”œβ”€β”€ 20% capacity for dedicated debt
β”‚   └── High interest items
β”œβ”€β”€ Opportunity-based for rest
β”‚   └── While working nearby
└── Review quarterly
    └── Adjust strategy

Sprint Allocation

SPRINT PLANNING WITH DEBT
═════════════════════════

CAPACITY ALLOCATION:
─────────────────────────────────────
Team Velocity: 40 pts/sprint

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Feature Work        β”‚ 28 pts (70%) β”‚
β”‚ Technical Debt      β”‚  8 pts (20%) β”‚
β”‚ Bugs & Maintenance  β”‚  4 pts (10%) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

SPRINT DEBT SELECTION:
─────────────────────────────────────
Priority order:
1. Debt blocking planned features
2. Highest interest rate items
3. Debt in areas being modified
4. Quick wins (low principal)
5. Age-based rotation

TRACKING PAYMENTS:
─────────────────────────────────────
Sprint 24 Debt Work:
β”œβ”€β”€ DEBT-003: Config refactor (5 pts) βœ“
β”œβ”€β”€ DEBT-007: Test coverage (3 pts) βœ“
β”œβ”€β”€ Total Paid: 8 pts
β”œβ”€β”€ New Debt Added: 2 pts
└── Net Reduction: 6 pts

Ledger Update:
β”œβ”€β”€ Previous Balance: 81 pts
β”œβ”€β”€ Payments: -8 pts
β”œβ”€β”€ New Debt: +2 pts
└── New Balance: 75 pts

Monthly Review

DEBT LEDGER REVIEW
══════════════════

MONTHLY REVIEW AGENDA:
─────────────────────────────────────
1. Balance Report
   β”œβ”€β”€ Current total
   β”œβ”€β”€ Change from last month
   └── Trend analysis

2. Interest Analysis
   β”œβ”€β”€ Highest interest items
   β”œβ”€β”€ Interest paid this month
   └── Velocity impact

3. Payment Progress
   β”œβ”€β”€ Debt paid down
   β”œβ”€β”€ New debt added
   └── Net change

4. Priority Adjustment
   β”œβ”€β”€ Reprioritize items
   β”œβ”€β”€ Update estimates
   └── Adjust strategy

5. Next Month Plan
   β”œβ”€β”€ Targeted items
   β”œβ”€β”€ Capacity allocation
   └── Goals

METRICS TO TRACK:
─────────────────────────────────────
β”œβ”€β”€ Total debt balance (points)
β”œβ”€β”€ Debt ratio (debt / velocity)
β”œβ”€β”€ Interest rate (pts/sprint)
β”œβ”€β”€ Payment rate (pts/sprint)
β”œβ”€β”€ Net change trend
└── Time to debt-free (projected)

Best Practices

  • Treat debt like finances with ledger discipline
  • Quantify everything - principal and interest
  • Allocate consistent capacity for payments
  • Review monthly to adjust priorities
  • Track interest rates to prioritize high-cost items
  • Celebrate payments to maintain motivation
  • Prevent new debt with code reviews and standards
  • Make debt visible to stakeholders
  • Anti-Patterns

    βœ— No tracking (invisible debt)
    βœ— No allocation (never paid)
    βœ— Only fixing when crisis
    βœ— Adding faster than paying
    βœ— No interest calculation
    βœ— Quarterly "debt sprints" only
    

    Related Solutions