We use cookies to understand which pages and tools are useful, nothing more — no ad tracking across other sites. You can change this later from the footer.

Skip to content
Lekhya.in

Guide3 min readPublished

Segregation of duties within an ERP: testing beyond the org chart

How to actually test segregation of duties inside an ERP system: mapping conflicting access by transaction code or role rather than by job title, and testing whether access actually matches the organisation chart.

Testing segregation of duties within an ERP means extracting the actual access rights assigned to every user — down to the transaction code, menu path, or role object the ERP uses — and running that extract against a predefined conflict matrix of incompatible combinations, such as the ability to both create a vendor and approve a payment, or both post a journal entry and approve its posting, rather than inferring segregation from job titles or an organisation chart, which show intended structure but not actual system entitlement.

Why the org chart test is not enough

An org chart shows who is supposed to do what. ERP access control shows who can actually do what, and the two routinely diverge: a user who moved from accounts payable to treasury often keeps the AP access rights from the old role because deprovisioning is a manual, easily skipped step; a temporary access grant for a one-off task is rarely revoked once the task is done; and a generic or shared login used for system maintenance can carry a combination of rights no single named employee would be given. None of this shows up in a review of role descriptions.

Building and running the conflict matrix

  1. 01Define the conflict matrix at the transaction or function level, not the job-title levelList specific incompatible pairs — vendor master maintenance versus payment approval, purchase order creation versus goods receipt, journal entry posting versus journal entry approval — mapped to the ERP's own transaction codes or role names.
  2. 02Extract the full user-to-access mapping from the ERPThis needs to include every role and every directly assigned authorization a user holds, not just their primary role, since conflicts often arise from an accumulation of secondary or legacy access.
  3. 03Run the extract against the conflict matrix for every active userThis is a mechanical cross-reference once both the matrix and the extract are available, and should be run at full population, not on a sample of users.
  4. 04For each conflict identified, assess whether a compensating control existsA genuine conflict is not automatically a finding if an independent review control catches the same risk — but the compensating control itself then needs to be tested for whether it actually operates.

Conflicts arising from leftover access after an internal transfer are far more common than conflicts built into the original role design, and they accumulate silently over time. A segregation-of-duties review that only looks at current role definitions, without checking what access individual users actually carry, will miss this category entirely.

How we think about this

Cross-referencing a full user-access extract against a conflict matrix is exhaustive, repeatable work that a tool should do for every user and every conflict pair, every time. Deciding whether a flagged conflict is adequately compensated by another control is the judgement that still needs a reviewer.

This is practical guidance written for audit teams, not an authoritative statement of any standard or statute. Standards, forms and timelines change. Check the current text issued by the ICAI and the relevant authority before relying on anything here in an audit file.

Free tools, no signup

Each one reads a file entirely in your browser — or, for two of them, just answers a few questions — and nothing is ever uploaded.