Model governance

How We Separate Technical Completeness from Business Readiness

By Dzmitryi Kharlanau · Published · 18 min read

A Supplier migration load finishes successfully.

Contents

Reviewed: 15 July 2026

A Supplier migration load finishes successfully.

The migration report shows:

Records submitted:
50,000

Records created:
49,920

Technical success rate:
99.84%

The project team reports that Supplier master data is ready.

Three days later, procurement tries to create the first purchase orders.

Some Suppliers cannot be used because the required purchasing-organisation extension is missing.

Accounts Payable tries to post invoices.

Several Suppliers have no valid reconciliation account for the relevant company code.

Treasury prepares the first payment run.

Forty payment-active Suppliers have bank details, but the verification evidence is expired and no payment block is active.

The Supplier records exist.

The mandatory fields accepted by the load interface are populated.

The technical migration result is strong.

The business still cannot use part of the population safely.

This is the gap between technical completeness and business readiness.

Technical completeness tells us whether a record satisfies a structural or execution requirement. Business readiness tells us whether that record can support its intended process under the accepted controls.

Migration programmes repeatedly confuse these states because technical completeness is easier to measure.

We can count:

Business readiness requires a more difficult assessment.

We must understand:

Martenweave should preserve this distinction explicitly.

Its current core already connects datasets, validation reports, Decisions and SAP context to canonical model files, deterministic validation, dataset gaps, lineage, impact analysis and human-reviewed proposals.

The next useful layer is not another completeness score.

It is a model that explains what a technically complete record is actually ready to do.

Our running case

We use one Supplier in the Wave 1 cutover population.

The record contains:

Business Partner number:
created

Supplier role:
created

Name:
populated

Address:
populated

Tax number:
populated

Bank account:
populated

Company-code extension:
created

Purchasing-organisation extension:
missing

Payment block:
empty

Bank verification:
expired

The load tool reports success because the Business Partner and Supplier objects were created.

A field-completeness report may also look strong:

Required fields populated:
97%

But the Supplier has different readiness states for different processes.

Ready for basic identification:
yes

Ready for invoice posting:
possibly

Ready for purchasing:
no

Ready for payment:
no

Ready for reporting:
yes

There is no contradiction.

Master data is used through process-specific organisational and control contexts.

A Supplier is not simply “ready” or “not ready” in the abstract.

It is ready for a defined use.

Technical completeness has several layers

Before we discuss business readiness, we should separate the different technical conditions that projects often combine.

File completeness

The expected columns exist.

SUPPLIER_ID
NAME
COUNTRY
BANK_ACCOUNT
COMPANY_CODE

This says nothing about whether the values are correct or sufficient.

Field completeness

Required fields are populated.

NAME is not empty
COUNTRY is not empty
BANK_ACCOUNT is not empty

This still says nothing about source authority, semantic validity or business applicability.

Schema validity

Values satisfy technical format requirements.

Examples include:

Transformation completeness

Every required target Attribute has a Mapping or derivation path.

A Mapping can be complete and still be wrong.

Load completeness

The target interface accepts the record.

The interface confirms that the submitted structure is technically processable.

Replication completeness

The record or change is distributed successfully to the intended consuming system.

Reconciliation completeness

The expected target values match the source or transformed values.

These technical layers matter.

None of them alone proves that the record can support a business process correctly.

A successful load proves less than teams assume

When a migration cockpit, API, IDoc or custom load framework reports success, it usually proves that the target accepted the submitted transaction under its current technical and application validations.

It does not automatically prove that:

The load result is Evidence.

It is not the complete readiness Decision.

For our Supplier, creation of the general Business Partner object does not prove that purchasing or payment can proceed.

An MDG approval proves a governed decision, not the entire migration state

SAP describes Master Data Governance as a governance layer for trusted master data, with governed models, golden records, profiling, matching, merging, semantic reconciliation, workflows, data-quality Rules and continuous monitoring. It also distinguishes master-data governance and quality from the distribution of master data to consuming applications.

These capabilities can provide strong Evidence.

An approved MDG change request may prove that:

It may not prove that:

We therefore treat MDG approval as an important part of readiness Evidence.

We do not turn it into a universal green status.

Business readiness starts with the intended process

We cannot assess readiness without answering:

Ready for what?

For the Supplier, possible uses include:

Each use requires a different subset of the model.

For purchasing, we may need:

Supplier identity
Supplier role
Purchasing organisation
Order currency
Purchasing group
Incoterms or other agreed purchasing controls
Partner functions where applicable

For invoice posting, we may need:

Company-code extension
Reconciliation account
Payment terms
Tax-relevant data
Posting control

For payment, we may need:

Company-code payment configuration
Payment methods
Bank account
Current authorised bank verification
Payment block logic

One record can pass the purchasing gate and fail the payment gate.

A single global completion percentage cannot express this safely.

We model business-capability gates

We define readiness through gates connected to the intended capability.

For our Supplier, we use four.

Identity gate

Can we confidently identify the intended business entity?

Requirements may include:

Structural gate

Do the required roles and organisational extensions exist?

Requirements may include:

Semantic gate

Do values represent the accepted business meaning?

Requirements may include:

Control gate

Are the controls required for safe use effective?

Requirements may include:

The record is ready for a business process only when the required gates are satisfied or a valid Exception governs the remaining deviation.

Completeness without organisational context is misleading

Supplier data in SAP is highly contextual.

General Business Partner data may be shared.

Company-code and purchasing data represent different operational scopes.

A dashboard that reports:

Supplier created:
yes

can hide:

Company code DE01:
ready

Company code NL01:
missing

Purchasing organisation P100:
ready

Purchasing organisation P200:
missing

Our running Supplier may be technically complete for DE01 and P100.

The business expects it to support NL01 and P200 after cutover.

It is therefore only partially ready.

We should model the assessment grain explicitly:

Entity:
Supplier

Business use:
Purchase Order Creation

Organisational scope:
Purchasing Organisation P200

Without this grain, completeness can be true for the wrong context.

We separate populated from governed

A field may contain a value without being governed.

Suppose the Supplier’s payment terms are:

Z030

The value may have come from:

All six paths can produce a populated target field.

They do not have the same readiness meaning.

We classify derivation.

Approved authoritative source:
governed

Approved deterministic Mapping:
governed

Steward-approved correction:
governed with Evidence

Current temporary Exception:
controlled

Unapproved default:
not governed

Manual override without Evidence:
not governed

Technical completeness counts values.

Business readiness evaluates the authority and derivation behind those values.

We separate syntactic validity from semantic validity

A reconciliation account can be a valid target code and still be wrong for the Supplier context.

A payment term can exist in configuration and still conflict with the approved commercial agreement.

A tax number can match the expected format and still belong to another legal entity.

A bank account can pass an IBAN check and still be unverified.

For our Supplier:

Bank account format:
valid

Bank account value:
populated

Treasury verification:
expired

Payment block:
missing

The record is syntactically complete.

It is not payment-ready.

This distinction should be visible in the readiness result.

We separate data correctness from process enablement

A record can be correct but incomplete for a process.

Suppose all loaded values are accurate.

The purchasing-organisation extension is missing because it was not included in Wave 1.

The Supplier data is not necessarily wrong.

The purchasing capability is unavailable.

The correct Finding is:

Required organisational extension
is missing from the migration scope.

Not:

Supplier data is incorrect.

This difference controls remediation.

We may need to:

We do not necessarily need to cleanse existing fields.

We separate business readiness from immediate activation

A Supplier can be loaded safely before it is activated for every process.

For example:

Supplier record:
created

Purchasing extension:
created

Bank verification:
pending

Payment block:
active

This Supplier may be:

Ready for purchasing:
yes

Ready for payment:
controlled or no

The record can exist in the target while payment remains intentionally blocked.

This is often a rational cutover treatment.

The readiness model must not force the false choice between:

Controlled activation is a real state.

We classify controlled readiness separately

For the payment process, our Supplier may be classified as controlled when:

Payment readiness:
controlled

Reason:
verification renewal pending

Compensating control:
payment block

Expiry:
before first payment activation

If the payment block is absent, the same Supplier becomes:

Payment readiness:
not ready

Both records are technically complete.

Their business-control states differ.

We treat unresolved identity as a business-readiness blocker

Duplicate handling is not only a data-quality exercise.

It affects business identity.

Suppose the Supplier exists twice:

Supplier A:
current contracts

Supplier B:
current bank account

Duplicate candidate:
unresolved

Both records may be technically complete.

Neither may be business-ready until the programme decides:

A high match score is not a completed Decision.

A completed duplicate-detection run is not resolved identity.

SAP’s MDG positioning includes matching, merging and semantic reconciliation as part of creating governed golden records.

For migration readiness, we still need to connect that Decision to the current migration keys, target records and process scope.

We treat missing relationships as readiness gaps

Master data works through relationships.

Our Supplier may depend on:

The Supplier’s main object can be complete while one relationship is missing.

For example:

Supplier general data:
complete

Purchasing organisation:
complete

Partner function:
missing

Purchase-order scenario:
blocked

Readiness should follow the business dependency graph, not only the parent record.

This is where Martenweave’s lineage and impact-analysis direction becomes important.

The current repository already treats lineage and impact analysis as explicit steps after gap detection.

We treat process-specific Rules as first-class

A generic Rule may state:

Supplier Name is required.

A business-readiness Rule may state:

A Supplier used for outgoing payment
must have a company-code extension,
an eligible payment method,
a current verified bank account
or a confirmed payment block.

The second Rule combines:

This is the level at which readiness becomes useful.

We should not try to represent every business process as one large Boolean expression.

We can decompose the capability into gates and linked Rules.

We distinguish mandatory target fields from mandatory business conditions

Target-system mandatory checks are necessary.

They are defined by:

Business conditions may be stricter.

The target may allow an empty purchasing field that the organisation requires for automatic purchase-order processing.

The target may accept a bank account without the programme’s current verification Evidence.

The target may create a Supplier without all future organisational extensions.

Technical acceptance therefore sets a floor.

It does not define the entire readiness standard.

We preserve the intended operating model

Migration programmes sometimes copy legacy data exactly and call it complete.

But the target operating model may require different behaviour.

For example:

A record can be fully copied from the legacy system and still be unready for the target model.

Readiness must be judged against the approved future state, not only source fidelity.

We show the difference directly

For our Supplier, the Workbench should display:

Technical completeness

General BP created:
pass

Supplier role created:
pass

Required file columns present:
pass

Transformation successful:
pass

Target load successful:
pass

Then separately:

Business readiness

Identity:
pass

Invoice posting in DE01:
pass

Purchasing in P200:
fail

Payment in DE01:
fail

Current Evidence:
pass

Overall:
not ready for full intended use

This view is harder to misunderstand than one blended score.

We keep technical and business findings separate

A failed file-schema check is not the same kind of problem as a missing purchasing extension.

Technical Finding

Column COMPANY_CODE is absent.

Business-readiness Finding

Supplier cannot support invoice posting
for company code NL01.

The technical Finding may cause the business Finding.

They should be connected through lineage.

They should not be treated as identical.

This allows teams to understand:

We do not make technical completeness irrelevant

Technical completeness is foundational.

A record cannot be business-ready if required data cannot be loaded or reconciled.

We preserve technical measures.

We simply stop presenting them as the final answer.

A useful hierarchy is:

File complete
→ structurally valid
→ transformed
→ loaded
→ reconciled
→ semantically governed
→ process-ready

Each stage provides Evidence for the next.

Skipping stages weakens confidence.

Stopping too early creates false readiness.

We define explicit denominators

Suppose 49,920 of 50,000 Suppliers load successfully.

The technical success rate is 99.84 percent.

For payment readiness, only 20,000 Suppliers may be in scope.

Of those:

Fully payment-ready:
19,500

Controlled through payment block:
420

Not ready:
40

Not assessed:
40

The correct payment-readiness breakdown is based on 20,000, not 50,000.

We should not combine unrelated populations to produce a more attractive percentage.

We classify not applicable separately

Not every Supplier needs every process capability.

A Supplier may be used only for reporting or historical transactions.

Bank verification may not apply when no future outgoing payment is allowed.

The state should be:

Payment readiness:
not applicable

Reason:
Supplier excluded from future payment use
by approved scope Decision

It should not be:

Payment readiness:
ready

Not applicable and ready are different claims.

We classify not assessed separately

A Supplier may have no current payment-readiness result because:

The state should be:

Payment readiness:
not assessed

Not:

Payment readiness:
failed

and not:

Payment readiness:
ready

Unknown states must remain visible.

We make temporary defaults visible

Suppose the purchasing group is set to 001 for 2,000 Suppliers because local ownership is not final.

The field-completeness report is perfect.

Business readiness depends on the meaning of 001.

Approved permanent default

The record may be ready.

Temporary migration fallback

The record may be controlled.

Undocumented constant

The record is not governed.

The same target value creates three different readiness states.

We need the Mapping and Decision history to distinguish them.

We show where completeness was achieved through manual repair

Manual file repair is common during cutover.

A steward may populate missing reconciliation accounts directly in Excel.

The values may be correct.

The readiness assessment should still preserve:

A manually corrected record can become ready.

A manual correction without provenance should not disappear into the fully governed population.

We distinguish local fixes from model resolution

Suppose our Supplier is manually extended to purchasing organisation P200.

The immediate record becomes usable.

The canonical Mapping still omits P200 for similar Suppliers.

The states are:

Supplier record:
ready for purchasing

Systemic Finding:
still open

This matters for later waves and delta loads.

We can close the record-level blocker while preserving the model-level defect.

We connect readiness to ownership

Each failed business gate needs an accountable role.

For the Supplier:

Purchasing readiness owner:
Procurement Data Owner

Invoice readiness owner:
Finance Data Owner

Payment readiness owner:
Treasury Data Owner

Migration implementation owner:
Supplier Migration Team

A generic “Supplier owner” may not have authority over all uses.

The readiness view should show who can decide and who must implement.

It should not build the workflow itself.

We connect readiness to Evidence freshness

A Supplier passed payment-readiness checks in RC5.

The bank-verification Mapping changes in RC6.

The technical load record remains unchanged.

The business-readiness result becomes unproven.

Technical completeness:
current

Payment-readiness Evidence:
stale

Current payment readiness:
not assessed

This is a critical distinction.

A technically stable record may require business revalidation after a model change.

We connect readiness to cutover decisions

A cutover decision should not ask only:

How many records loaded?

It should ask:

For our Supplier population, the cutover summary might state:

Technical load success:
99.84%

Purchasing readiness:
98.9%

Invoice readiness:
99.5%

Payment readiness:
97.5% fully ready
2.1% controlled
0.2% not ready
0.2% not assessed

Cutover payment gate:
not ready

The lower percentage is not necessarily a worse report.

It is a more precise one.

A conceptual capability assessment

A process-specific readiness object might look like:

---
id: READINESS-SUPPLIER-100045-PAYMENT-RC6
type: CapabilityReadiness

entity:
  SUPPLIER-100045

capability:
  outgoing_supplier_payment

scope:
  company_code: DE01
  migration_wave: WAVE-1
  baseline: CUTOVER-RC6

technical:
  target_record_created: pass
  company_code_extension: pass
  bank_account_loaded: pass
  reconciliation_completed: pass

business:
  bank_verification_current: fail
  payment_block_confirmed: fail
  payment_method_valid: pass

evidence:
  status: current

overall:
  status: not_ready

blocking_finding:
  FIND-BANK-VERIFY-NO-BLOCK
---

This is a proposed product direction.

It is not a claim about the exact current Martenweave schema.

We aggregate without losing the underlying states

At programme level, we can aggregate process-specific results.

Payment capability

Ready:
19,500

Controlled:
420

Not ready:
40

Not assessed:
40

The aggregation remains traceable.

Users can drill into:

We do not aggregate by converting controlled and unassessed records into ready.

The Workbench view we need

A useful page should have two clearly separated sections.

Technical completeness

Business readiness

The page should state:

Technically complete:
yes

Ready for intended business use:
no

Reason:
Purchasing organisation P200 missing
and payment control unresolved

That single distinction would eliminate a large amount of programme confusion.

The first product slice we should build

The next Martenweave capability should be Capability-Based Business Readiness.

Goal

Assess whether technically migrated master data can support a defined business process in a defined organisational context.

Initial inputs

Initial technical states

Initial business states

Initial Supplier capabilities

Required outputs

Proposed commands

A future CLI could support:

martenweave readiness capability \
  --entity SUPPLIER-100045 \
  --capability outgoing_supplier_payment \
  --scope company_code=DE01 \
  --repo ./model
martenweave readiness explain \
  READINESS-SUPPLIER-100045-PAYMENT-RC6 \
  --repo ./model
martenweave readiness compare-technical-business \
  --scope supplier-wave1 \
  --repo ./model
martenweave readiness process-summary \
  --capability purchase_order_creation \
  --scope purchasing_org=P200 \
  --repo ./model

These commands describe a recommended product direction.

They are not part of the currently documented CLI.

The existing Martenweave foundation already supports canonical files, deterministic validation, dataset-gap detection, lineage, impact analysis and dataset-readiness workflows.

Acceptance criteria

We should consider the capability useful when it can correctly classify our Supplier as:

Technically complete:
yes

Ready for basic identification:
yes

Ready for invoice posting in DE01:
yes

Ready for purchasing in P200:
no

Ready for payment in DE01:
no

It must explain why.

It should also prevent these false conclusions:

  1. A successful load means the Supplier is ready for purchasing.
  2. A populated bank account means the Supplier is payment-ready.
  3. An approved MDG record proves the cutover file used the approved state.
  4. A technically valid code proves the value is semantically correct.
  5. A general Supplier record proves every organisational extension exists.
  6. A completed duplicate-detection job proves identity is resolved.
  7. A manually populated default is equivalent to an approved source value.
  8. old business-readiness Evidence remains current after a material Mapping change.
  9. one global percentage represents every Supplier business use.
  10. not applicable and not assessed can be counted as ready.

What we should not build

We should not turn Martenweave into:

The capability should remain model-driven.

It links master-data state to the process conditions already defined by the programme.

The business value

Confusing completeness with readiness creates expensive failures:

Separating the states changes the conversation.

Instead of:

Supplier load is 99.84% complete.

we can say:

The Supplier objects are technically loaded.

Purchasing is ready for P100,
but not for P200.

Invoice posting is ready for DE01.

Payment remains blocked for 40 Suppliers
because the current bank control is unresolved.

That statement is more operational.

It allows leaders to make a real cutover decision.

Final perspective

Technical completeness asks:

Is the field present?

Is the structure valid?

Did the transformation run?

Did the target accept the record?

Did reconciliation match?

Business readiness asks:

Is this the right business entity?

Is the value governed?

Is the organisational context present?

Are critical controls effective?

Is the Evidence current?

Can the intended process operate safely?

For our Supplier, the record can be technically complete and still be unready for purchasing or payment.

That is not a reporting inconvenience.

It is the central reality of master-data migration.

The practical test is:

Can we name the exact business capability, organisational context and control conditions for which the record is ready?

When the answer is yes, readiness becomes meaningful.

When the answer is:

The record loaded successfully and most fields are populated,

we have proven technical progress.

We have not yet proven business readiness.

About the authors

Martenweave is maintained by Dzmitryi Kharlanau.

We are building Martenweave so that migration teams stop treating object creation, field population and successful load messages as interchangeable with operational readiness.

Our operating model is:

Technical checks prove structural progress.

Canonical Rules define accepted meaning.

Capability gates define business use.

Exceptions preserve controlled limitations.

Evidence proves the current state.

Findings explain what remains blocked.

Humans approve readiness for the process.

Martenweave is an open-source, backend-first model-governance and evidence layer for SAP migration, MDM, data governance and AMS teams.

Sources and notes

This article was reviewed on 15 July 2026.

Martenweave Core currently describes an open-source, backend-first governance and Evidence layer that transforms datasets, validation reports, Decisions and SAP context into canonical model files, deterministic validation, dataset gaps, lineage, impact analysis and human-approved AI proposals.

Its current principles keep canonical files authoritative, generated indexes disposable, validation deterministic and AI changes proposal-first.

Its documented workflow includes dataset and model-gap detection, lineage, impact analysis and a dataset-readiness command.

SAP describes SAP Master Data Governance as a governance layer that creates governed golden records, supports matching and merging, provides workflow, applies data-quality Rules and maintains auditable data changes. SAP also distinguishes master-data integration, which distributes data in its current state, from master-data management and quality improvement. These distinctions support treating MDG approval, replication and migration execution as related but separate readiness Evidence.

Capability-based readiness objects, process gates, organisational-context assessments and the proposed commands are product directions. They should not be interpreted as guarantees of the exact current Martenweave schema, Workbench behaviour or CLI until implemented and released.

Martenweave is independent and is not affiliated with or endorsed by SAP.

Primary sources