We conducted an empirical study following the roadmap illustrated in the above figure. Initially, we studied the literature and identified TD indicators that could act as predictors, such as TD-related features and various Object Oriented (OO) metrics. Afterwards, we constructed a relatively large code repository comprising of 15 real-world open-source Java applications retrieved from the GitHub online repository. For each application, we collected a subsequent number of snapshots (commits) ranging from 100 to 150 in weekly intervals, spanning up to almost 3 years of each application’s evolution. This approach led to a dataset containing 1850 snapshots in total (171M lines of code). In order to extract the identified TD-related features and various Object Oriented (OO) metrics that could act as predictors, we used two popular static code analysis (ASA) tools, namely SonarQube and CKJM extended respectively. This process led to 15 independent application-specific datasets containing TD indicators and TD values for each snapshot. Subsequently, we employed techniques like correlation analysis, univariate and multivariate analysis, which allowed us to select the optimal TD predictors and thus retain as much discriminatory information as possible. Finally, we examined potential ML forecasting models and algorithms that could be applied for TD prediction and compared their accuracy for various forecasting horizons in order to reach safer conclusions regarding the significance of the observed results.