SleevoSleevo

Articles

How SAP Cloud ALM calculates Clean Core debt

Levels A to D, points per finding, why an object's level is that of its worst finding, and the two dashboard figures that are often confused.

Sleevo team · Sep 10, 2026 · updated Oct 23, 2026 · 5 min read

Share

SAP Cloud ALM now shows, for each system, how much of the company's custom code is outside the Clean Core standard. The figure appears in points, object by object, and is already making its way into upgrade and planning meetings. Understanding how it is calculated avoids two traps: believing the work has not progressed when it has, and promising a result the dashboard will not show. If the Clean Core concept is still new to you, start with What Clean Core is, and why it became a priority.

What is measured

The measurement comes from the ATC (ABAP Test Cockpit), SAP's own code checking tool. The official Clean Core checks report each finding: each place in the Z code that uses something from SAP outside of what SAP guarantees will not change between updates. Reading an SAP table directly is one finding; calling an internal function module is another.

The scale: four levels and points per finding

Each finding is assigned a level, and each level is worth points:

Level What it is Example Points
A Only released APIs, with the object in ABAP Cloud New code written in ABAP Cloud 0
B Classic API, stable and accepted in Clean Core BAPI call, classic BAdI 1
C SAP internal object, which may change in an update Direct read of an SAP table 5
D Usage outside Clean Core Direct write to an SAP table 10

An object's technical debt is the sum of the points of its findings. The system's debt is the sum across all objects.

An object's level is that of its worst finding

A program's level is not the average of its findings: it is the worst of them. Consider a program with 30 Level B findings and one Level D finding:

Situation What remains Level Debt
Today 30 B + 1 D D 30 × 1 + 1 × 10 = 40
Only the 30 B findings fixed 1 D D 10
Only the D finding fixed 30 B B 30
Everything fixed, in standard ABAP none B 0
Everything fixed and converted to ABAP Cloud none A 0

Fixing 30 findings and leaving the worst one behind reduces the debt, but does not change the level. The level only improves when the last finding of the worst level is gone.

The same table, animated.

The two dashboard figures

Among the indicators on the Cloud ALM Extensibility dashboard, two are often confused, and that confusion is the source of most of the frustration:

Indicator What it counts When it changes
Technical Debt Score The sum of the points of all findings With every finding fixed
Clean Core Share How many objects are at each level, based on each one's worst finding Only when an object changes level

A large program that drops from 1,200 to 700 points and still has C findings does not move in the bar chart: it is still a C object. But it takes 500 points off the score. That is why it pays to choose what to fix first with both goals in mind: fully cleaning small objects moves the chart; working on large objects moves the score.

Where the numbers come from

  • Levels B, C and D: from the ATC result that the company itself exports from the system and imports into Cloud ALM. Without a new import, the dashboard does not change, even after the fix.
  • Level A: from the object's language version (ABAP for Cloud Development), not from the ATC. Until the first ATC import, every object in Standard ABAP shows up as B.
  • Level per message: the priority of the ATC message sets the level. Error is D (10 points), warning is C (5) and information is B (1).

The August 2026 change

Starting with the August 2026 data, SAP changed the calculation (announcement "SAP Cloud ALM's Clean Core Extensibility Assessment is getting more accurate", of September 2, 2026, and SAP Note 3761018):

  • only object types with logic are included, such as programs, classes and function modules;
  • each function module now counts as an object, rather than only the function group;
  • objects without any findings now also count.

Previous months were not recalculated. Comparing July with August mixes the two criteria; to align the history, simply re-import the old ATC results, if they are still stored.

In practice

The dashboard debt is an exact calculation, and the same calculation can be done before any fix: by running the ATC with the same checks, you know how much each object will take off the score and whether it will change level. That is what makes it possible to plan the adaptation in stages, with a target in points, instead of "fixing whatever we can". To understand why a program with a classic screen never goes beyond Level B, read Why a program with a classic screen stops at Level B.

Sources

  • SAP Help, SAP Cloud ALM: Extensibility (System View), with the import of the ATC result and the dashboard indicators.
  • SAP, Clean core extensibility (white paper), August 2026 edition, section 4.1.3.
  • SAP, Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions (ABAP Extensibility Guide), version 2.3, August 2025, chapter 5.
  • SAP Community, SAP Cloud ALM's Clean Core Extensibility Assessment is getting more accurate, September 2026, and SAP Note 3761018.