Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Scoring Strategies

Debtmap uses sophisticated scoring strategies to prioritize technical debt based on multiple factors including complexity, test coverage, and functional role. This section explains the different scoring approaches available.

Overview

Scoring strategies determine how debtmap calculates priority scores for functions and files. The goal is to identify the most impactful technical debt that provides the best return on investment for refactoring efforts.

Strategy Types

File-Level vs Function-Level

Debtmap operates at two granularity levels:

  • Function-Level Scoring - Identifies specific functions that need attention, considering complexity, coverage, and role
  • File-Level Scoring - Aggregates function metrics to identify module-level architectural issues

Role-Based Adjustments

Not all code deserves equal scrutiny. A complex orchestrator function has different testing requirements than pure business logic:

  • Role-Based Adjustments - Automatic multipliers based on detected function roles (pure logic, I/O wrappers, entry points, etc.)

Scoring Algorithms

Different algorithms for calculating final scores:

  • Rebalanced Scoring - The default balanced approach that weighs coverage, complexity, and dependencies
  • Exponential Scaling - Aggressive scaling for codebases where highest-priority items need strong emphasis
  • Data Flow Scoring - Scoring based on how data flows through functions (sources, sinks, transforms)

Choosing a Strategy

StrategyBest ForCharacteristics
Rebalanced (default)Most projectsBalanced, fair prioritization
ExponentialLarge legacy codebasesEmphasizes worst offenders
Data FlowPipeline-heavy codePrioritizes data transformation logic

Configuration

Scoring can be tuned via the [scoring] section in .debtmap.toml:

[scoring]
coverage = 0.50    # Weight for test coverage
complexity = 0.35  # Weight for complexity metrics
dependency = 0.15  # Weight for dependency analysis

See Scoring Configuration for full details on available options.