Published

SAP Clean Core Which Customizations Should You Keep Retire or Rebuild

SAP Clean Core is not about eliminating every customization—it’s about making smarter decisions about what to **retire, replace, retain, or rebuild**. For businesses, the payoff is clear: **lower support and maintenance costs, faster upgrades, reduced operational risk, and greater agility when business requirements change.** By removing obsolete customizations and replacing fragile dependencies with supported extension approaches, organizations can simplify their SAP landscape without losing the capabilities that create real business value. The blog explains a practical approach to evaluating customizations based on **business value, usage, ownership, upgrade risk, and long-term cost**—helping SAP teams turn clean core from a technical initiative into a measurable business improvement. **Make every SAP extension earn its place—and make every customization contribute to the business.**
SAP Clean Core Which Customizations Should You Keep Retire or Rebuild

SAP clean core means managing extensions so business differentiation does not create unnecessary dependence on internal application behavior. The practical decision is which customizations to retire, replace with standard capabilities, retain under controlled exceptions, or rebuild using supported extension approaches. Clean core is an architectural discipline, not a demand to remove every useful customization.

For U.S. businesses modernizing SAP, the uncomfortable question is often economic: how much of the custom code still earns its place? A program that preserves everything can carry years of avoidable cost into the next platform.

Why clean core matters beyond an upgrade

SAP describes clean core across several dimensions, including extensions, operations, and related landscape practices. Its extensibility guidance emphasizes separating extensions from the application where appropriate. [1]

That separation matters because business requirements and software releases change on different schedules. A pricing rule might need frequent adjustment while the underlying ERP platform follows a planned release cycle.

Well-designed boundaries make those changes easier to assess. They do not eliminate testing, monitoring, or support. A side-by-side extension can still fail because its data contract is unclear or its owner has left the organization.

Define the business goal before defining the compliance score. Faster upgrade preparation, lower support effort, and more dependable changes are meaningful outcomes. Simply reducing the number of custom objects may reward the wrong behavior.

Inventory behavior rather than counting objects

Start with a list of extensions, interfaces, reports, enhancements, and modified behavior. Then connect each item to the business process it supports.

Record usage, business owner, underlying dependencies, failure impact, support effort, and available standard alternatives. Gather evidence from production activity and process interviews. A rarely used program may still be essential at year-end.

Group related objects into capabilities. Twenty programs supporting one obsolete process are one retirement decision. A single enhancement supporting several important workflows may require a deeper redesign.

This approach prevents a misleading success metric: deleting many small objects while leaving the most expensive dependency untouched. The priority should reflect business risk and lifecycle cost.

Four decisions for every customization

Retire an extension when its business purpose has disappeared and usage evidence supports removal. Confirm downstream reports, background jobs, and exception processes before deleting anything.

Replace it with standard functionality when the current SAP capability meets the requirement. Demonstrate the proposed behavior to users; similar feature names do not establish functional equivalence.

Rebuild it when a necessary requirement depends on a fragile design that can be replaced with a supported extension approach. Include migration, testing, operational ownership, and monitoring in the estimate.

Retain it temporarily when immediate change would create more risk than value. Document the exception, its owner, its limitations, and the condition that triggers reconsideration. Temporary retention without a review date often becomes permanent by default.

These decisions are more useful than labeling every object good or bad. They turn clean core into a funded business backlog.

Prefer released interfaces and verify the boundary

SAP's released API guidance describes interfaces intended for supported consumption. Prefer released APIs and extension points where they meet the requirement, and verify availability in your actual edition and release. [2]

The presence of an API does not mean it supports every required operation. Check the business object, authorization model, transaction behavior, supported fields, limits, and failure responses.

Avoid building an external service that secretly depends on internal table structures. Moving code outside the ERP system does not make an unstable dependency safe.

Write a small contract for the extension: required inputs, expected outputs, business errors, retry behavior, and supported changes. This contract gives developers, testers, and support teams a shared definition of correct behavior.

What to do when a released API is missing

SAP's current extensibility guidance recognizes that capability and API availability differ between versions. It also discusses controlled alternatives when released interfaces are unavailable. [3]

SAP provides developer guidance for wrapping an unreleased API in relevant S/4HANA and private edition scenarios. A wrapper can establish a controlled consumption boundary; it does not turn the underlying unreleased dependency into a released SAP contract. [4]

Treat the gap as an architecture decision. Confirm the applicable product restrictions, assess alternatives, and define who monitors future SAP capabilities. Include testing for upgrades that could affect the underlying dependency.

Do not use a wrapper as a universal workaround for every product edition. A technique available in one environment may not be permitted or feasible in another.

A hypothetical rebate process exposes the tradeoff

Consider a fictional U.S. distributor with a custom rebate calculation developed years ago. Its users say it is essential because several customer agreements depend on it.

The discovery team finds three different situations: active contractual rules, calculations nobody uses, and reporting adjustments that compensate for inconsistent customer data. Keeping the entire solution would preserve all three.

The sensible plan separates them. Validate active agreements against standard capabilities. Retire unused calculations after evidence review. Fix the data issue at its source instead of reproducing the compensating logic in a new extension.

For a genuinely necessary remaining rule, define a supported implementation boundary and test financial reconciliation. Include retroactive adjustments, returns, and agreement changes. The difficult exceptions often determine whether the design is viable.

This scenario is illustrative. It shows why business analysis belongs in a clean core program alongside code analysis.

Measure the debt that matters

Choose measures linked to change and support. Examples include extensions without owners, dependencies on unreleased objects, unresolved upgrade findings, and the effort required to validate a release.

Do not convert these measures into invented savings claims. Track a baseline, perform specific remediation, and compare subsequent work under similar conditions.

Also measure adoption. A technically compliant extension that users bypass through spreadsheets may have moved complexity rather than resolved it.

Use architecture reviews for new work, but keep the process proportionate. A minor supported field extension and a business-critical posting service deserve different levels of scrutiny. Reviewers should explain what evidence is required and why.

Put clean core into the delivery process

SAP's clean core learning material describes available extensibility tools and their intended roles. Translate that guidance into local design and acceptance criteria. [5]

Before development begins, require a business owner, a documented need, an alternatives review, and an approved interface approach. Before release, require tests, support instructions, monitoring, and a change impact assessment.

Maintain a register of exceptions. For each exception, record the reason, the risk, compensating controls, and the next review trigger. Make that register part of planning rather than an appendix nobody reads.

Prioritize a small first wave. Removing one costly dependency with clear business approval can teach more than announcing a large cleanup effort with no accountable owners.

Test retirement as carefully as development

Removing an extension deserves an acceptance plan. An object with little recorded activity may still support an annual task, a legal report, or an unusual exception. Validate its purpose across a representative operating cycle before removing it.

Interview both the named owner and the people who handle incidents. Support staff may know about dependencies that are absent from design documents. Search scheduled jobs, interfaces, and reports for references to the object.

For a proposed standard replacement, test the entire business result. Matching the main screen does not prove equivalence in rounding, account determination, approval behavior, or downstream reporting.

Plan the transition of stored data and configuration. If an extension is retired, decide which historical records remain accessible and how users interpret them. Keep required evidence available through an appropriate supported arrangement.

Define a recovery option proportional to the risk. A harmless report can have a simple fallback; a critical transactional extension may need a more deliberate cutover and rollback design. Record the conditions under which the fallback is used.

After release, inspect actual behavior. Users may reveal a legitimate requirement that discovery missed, or they may continue a workaround because training was incomplete. Those outcomes require different responses.

Clean core improves when retirement decisions remain connected to business evidence. Deleting an object is the technical endpoint of that decision, not the whole decision.

A named owner should accept the replacement and confirm its ongoing support arrangements before formal acceptance and project closure.

Frequently asked questions

Does clean core mean zero custom code

No. The goal is controlled, maintainable extensibility that supports business needs. Useful differentiation can remain when its design, dependencies, and ownership are appropriate.

Is an extension on SAP BTP automatically clean core

No. Its integration contracts, data access, lifecycle management, and dependence on ERP internals still matter. Location alone does not establish a sound architecture.

Should all legacy customizations be rewritten during migration

No. First distinguish obsolete behavior, standard alternatives, genuine differentiation, and necessary temporary exceptions. Rewriting unused functionality adds cost without business value.

Make every extension earn its place

Genius Business Solutions (GBSI) provides SAP implementation and process consulting services. Bring an extension inventory and the business decisions behind it to a GBSI discussion. A useful roadmap preserves necessary differentiation while reducing dependencies that make the next change unnecessarily difficult. 

References

[1] SAP Learning. Introducing the clean core approach

[2] SAP Learning. Exploring released APIs

[3] SAP Learning. Clean core extensibility best practices

[4] SAP Developer Center. Mitigate a missing released SAP API

[5] SAP Learning. Clean core strategy and extensibility tools

‍

Findings from the team

⁠⁠The latest industry insights, technology advancements and findings form the team.
View all blogs