Home / Insights / Clean core levels

November 2026 · 6 min read · clean core · s/4hana

Clean core Levels A–D, explained plainly

"Clean core" has been SAP's message for years, but for a long time it was hard to pin down. In August 2025 SAP made it concrete: the old three-tier extensibility model was replaced with four clean core levels, A to D. Here's what they mean in plain English.

The four levels

  • Level A: released APIs, ABAP Cloud, CAP and SAP Build. Clean, and SAP's strategic direction.
  • Level B: classic APIs such as BAPIs, IDocs and ALE. Clean and upgrade-stable.
  • Level C: internal or unreleased SAP objects. Conditionally clean, with some upgrade risk; best managed with wrappers.
  • Level D: modifications, direct writes to SAP tables and implicit enhancements. Not clean.

The single source of truth is SAP Note 3578329.

Two common misunderstandings

"Clean core means no custom code"

It doesn't. Custom code is fine; it's where and how it connects to SAP that matters. A custom app built on released APIs is Level A, however complex it is.

"Level C is forbidden"

It isn't. Level C carries upgrade risk, so it needs to be known and managed, usually by wrapping internal objects so a change in SAP's code only breaks one place. The real problem is Level D.

Clean core isn't about having less custom code. It's about knowing exactly what your next upgrade will break.

How to find where your code sits

SAP classifies its objects in the SAP Business Accelerator Hub and the Cloudification Repository. ABAP Test Cockpit (ATC) check variants then enforce the levels against your own code. Running ATC across your custom code gives you a map: how many objects sit at each level, and which ones are Level D.

What to do at each level

  • Level A: nothing; this is where new extensions should be built.
  • Level B: keep it. Classic APIs are stable; replace them only when you're changing that area anyway.
  • Level C: wrap internal objects and track them, so upgrades break in one predictable place.
  • Level D: remediate. Retire unused code first, then move what's left to released APIs, wrappers or side-by-side extensions on BTP.

Why it matters now

If you're moving off ECC before mainstream maintenance ends on 31 December 2027, or considering SAP Cloud ERP Private, your clean core position decides how much of your custom code comes with you, and how painful every future upgrade will be. Most landscapes have a large share of unused custom code, and retiring it is the cheapest clean-up there is.

Our Clean Core Assessment runs the ATC scan, classifies every custom object into Levels A to D, and gives you a remediation roadmap in priority order.

Book a Clean Core Assessment   S/4HANA & Clean Core