Skip to main content
DoneThat

AI Adoption GuideITPlan

Tech debt risk scoring

ML classifier scores each system on failure probability, support-end proximity, and integration coupling to prioritize refresh investment.

IT processPlanSelectDeployProvisionSupportUpgradeReplaceRetire

By Don, DoneThat’s AI coach · updated

What the score is for

A tech debt risk score ranks systems in your application portfolio so refresh investment goes to the ones that matter most. Each score combines three signals: how likely a system is to fail in operational terms, how close it is to vendor or platform support end, and how tightly it couples to other systems through integrations. The output is a ranked list architecture and portfolio leads can defend in planning forums, not a retirement order or a fabricated probability.

The score earns trust when every populated field points to a cited fact. Support-end proximity comes from documented lifecycle dates in your CMDB or asset register. Integration coupling reflects dependency and interface records you already maintain. Failure likelihood, when you include it, must rest on observable indicators such as incident history, patch lag, or monitoring alerts, never on a model filling gaps with invented numbers. When a fact is missing, the corresponding field stays empty. Architecture still prioritizes using whatever evidence exists rather than waiting for a complete picture or backfilling silence with assumptions.

Load CMDB facts before you score

Scoring starts with a clean extract from whichever CMDB or application portfolio tool your organization runs. ServiceNow, BMC, Flexera, and LeanIX are common sources; the workflow is the same regardless of vendor. Pull application identity, owner, environment, technology stack, support-end or end-of-life dates, and dependency or interface links. Normalize names so the same system does not appear twice under different labels.

Treat the CMDB as the evidence layer, not the score itself. Validate that support-end dates trace to a vendor bulletin, contract term, or internal lifecycle record before they enter the scoring input. Flag records with no lifecycle date rather than defaulting them to a distant placeholder. Capture integration coupling as countable relationships: inbound and outbound interfaces, shared databases, batch feeds, and API dependencies documented in your repository. Pair this load step with a decommission dependency mapper pass when you need to confirm that coupling numbers reflect real downstream consumers, not stale interface entries.

Export a snapshot with timestamps. Scoring against a moving CMDB without version control produces arguments nobody can reproduce. If your team also forecasts capacity or demand shifts, align the same application keys with your demand and capacity forecast inputs so refresh priorities stay consistent across planning artifacts.

Score each system with citations, not guesses

Run the classifier or scoring model against the snapshot. For each application, require the model to attach citations for every non-empty field: which CMDB attribute, which support-end record, which dependency count or edge list supports the integration coupling component. Empty fields remain empty when the underlying fact is absent. Do not infer a failure probability from vendor name, age alone, or industry anecdotes.

Support-end proximity should reflect calendar distance to the cited end date, with the citation visible in the score card. Integration coupling should reflect the cited dependency set, ideally with enough detail that an architect can open the same interface list and reconcile the number. Failure likelihood, if your model emits it, must cite operational evidence. If incident data is incomplete for a system, leave likelihood blank rather than smoothing across the portfolio with a synthetic default.

Illustrative example: a legacy billing adapter ranks high on integration coupling because CMDB records show twelve downstream finance feeds, moderate on support-end proximity because the database platform behind it reaches vendor support end in nine months with a cited bulletin ID, and blank on failure likelihood because monitoring and incident tags were never linked to that CI. Architecture can still place it near the top of the refresh queue based on coupling and support-end signals without pretending the team measured a 73% failure chance.

Review outliers before publishing the register. A high coupling count with no cited edges is a data defect, not a priority signal. A support-end date with no source document is another defect. Fix the CMDB or downgrade the field to empty, then re-score.

How architecture uses ranked systems

Portfolio and enterprise architecture leads use the ranked list to sequence refresh waves, fund proof-of-concept replacements, and align upgrade windows with dependency risk. The score informs prioritization; it does not trigger automatic decommission. Retire decisions still flow through dependency analysis, stakeholder sign-off, and migration planning.

Combine ranking output with a replacement timing optimizer when you need to spread work across budget years without ignoring systems that share a support cliff. Before major upgrades, run an upgrade readiness assessor on candidates near the top of the list so refresh plans account for technical prerequisites, not just risk rank.

In architecture review, present the score as evidence-backed tiers rather than precise ordinals. Systems with empty failure likelihood but strong support-end and coupling signals still belong in early refresh conversations. Systems with low coupling and distant support end can wait, provided the cited facts hold. Document which fields were empty so executives do not interpret a blank as "safe."

Governance should state explicitly that no workflow may retire an application solely because it scored high. High score means prioritize study, funding, and design. Decommission still requires mapped dependents, transition plans, and operational cutover criteria.

Failure modes that corrupt the register

Several predictable mistakes turn a useful rank into a harmful directive. The first is publishing a support-end proximity value with no citation. Teams then plan emergency replacements against dates nobody can verify. Enforce a hard rule: no cite, no value. Re-run the CMDB load until every populated support-end field links to a source record.

The second failure mode is treating the ranked list as a retire order. Integration-heavy systems rise to the top because they threaten continuity if they fail, not because they should disappear first. Replacing them without succession paths can break more than leaving them in place temporarily. Keep decommission mapping and stakeholder review outside the scoring pipeline.

The third failure mode is inventing failure probability. Models and analysts sometimes emit a percentage to make dashboards look decisive. A number without incident, monitoring, or patch evidence is fiction and will erode trust the first time an architect audits citations. Prefer empty likelihood plus explicit coupling and support-end facts over a synthetic probability that implies precision you do not have.

Additional drift comes from stale CMDB dependencies, duplicate application records that split coupling counts, and scoring runs that silently impute missing dates. Version your inputs, reconcile duplicates before scoring, and audit a sample of top-ranked systems monthly. When citations fail audit, empty the field and re-rank rather than defending a score built on bad data.

Operating rhythm for portfolio leads

Establish a quarterly scoring cycle tied to CMDB quality gates. Between cycles, accept incremental fixes when support-end dates change or major dependencies are added. Train application owners that empty fields are invitations to improve records, not penalties.

Share the ranked register with finance and delivery planners as a prioritization input alongside capacity forecasts and upgrade readiness results. Keep language consistent: "prioritize refresh analysis" rather than "retire" or "replace immediately." When leadership asks for a single number summarizing portfolio risk, resist collapsing cited multi-field scores into one opaque index unless each component remains auditable.

Used this way, tech debt risk scoring gives architecture a defensible ordering mechanism grounded in CMDB facts and lifecycle dates. Blanks stay blank. Citations stay attached. Prioritization moves forward without auto-retire logic or invented probabilities.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first