Predictika · SOX segregation of duties
An AI access-request agent prepares a request to give an employee one more duty in a finance process: the duties the employee already holds, the duty requested, and any compensating control and how often it runs. Before the access is granted, the agent sends the request to Predictika, which checks it against a declarative model of segregation-of-duties rules and returns a verdict, every reason and the figures it computed.
This validator checks a proposed duty grant against the duties an employee already holds — not just the scenarios shown below.
Any duty request among the listed duties is in scope, not only the scenarios pictured here. Not covered: duties outside the list, more than two existing duties, role and entitlement mapping in a specific ERP or identity system, the design or testing of the controls themselves, and the audit conclusion. The conflict pairs and frequency rules are a simplified illustration of public SOX and COSO guidance, not any company's control matrix, and are not audit advice.
7 scenarios in 3 groups · each group runs from the agent’s first attempt to the outcome · click one to switch
Illustrative agent statement. The validator receives the structured request below.
Proposing agent: AI access-request agent (scripted)
Before granting, the agent must call Recorded run
What this means
Our assessment of what a typical rules-based tool (role conflict matrices, access-request workflows and approval routing configured in an identity or ERP governance system) does with the same cases. It is our assessment, a judgment about effort and reliability, not a claim that nothing can be built.
| What the validator caught | Typical rules-based tool | Predictika |
|---|---|---|
| A conflict between a duty held and a duty requested | Only if someone is vigilant A matrix of conflicting pairs works for two duties, but it has to be checked in both directions and across every duty the employee holds. | Every held duty is checked against the requested duty and against each other on the same call. |
| A control that must be independent and frequent enough for the risk level | Only with workarounds Independence, frequency and risk level sit in different places and the allowed frequency depends on the risk, so it is a cross-field rule that is hard to keep in step. | Control, frequency and risk level are checked together; a control that runs too rarely is blocked, not just flagged. |
| A mitigated conflict that needs sign-off but is not a block | Only if someone is vigilant Approval routing is usually set up apart from the conflict check, so a mitigated conflict can be routed as a plain approval or blocked outright. | The verdict separates block, needs approval and allow, with the reason for each. |
| Every problem returned in one answer | Only with workarounds Checks tend to fire one at a time as the request moves through steps, so a requester fixes one problem and meets the next. | All findings come back together, whatever order the choices arrived in. |
Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the request; approval findings need a person to sign off; everything else is computed.
| 1 | An employee may not hold two duties that conflict (create and approve vendor, create and approve purchase order, approve invoice and process payment, process payment and reconcile bank, post and approve journal entry, initiate and approve wire). |
| 2 | A requested duty may not conflict with either of the duties the employee already holds. |
| 3 | A conflict with no documented compensating control is blocked. |
| 4 | A conflict whose documented control is not independent of the employee is blocked. |
| 5 | A conflict with an independent control that runs too rarely for the risk level is blocked (high risk: continuous, daily or weekly; moderate: also monthly; low: also quarterly). |
| 6 | A conflict with an independent control that is frequent enough for the risk level needs control-owner sign-off. |
| 7 | Holding the same duty twice, or requesting no duty, is not a conflict. |
The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.
The agent's request. Please grant the Approve purchase order duty to Marcus Ellery (E-1187) in Procure to pay.
Verdict: Blocked.
The agent's request. Please grant the Approve purchase order duty to Marcus Ellery (E-1187) in Procure to pay.
Verdict: Needs approval.
The agent's request. Please grant the Approve invoice duty to Marcus Ellery (E-1187) in Procure to pay.
Verdict: Allowed.
The agent's request. Please grant the Approve vendor duty to Priya Raman (E-1041) in Procure to pay.
Verdict: Blocked.
The agent's request. Please grant the Approve vendor duty to Priya Raman (E-1041) in Procure to pay.
Verdict: Needs approval.
The agent's request. Please grant the Create purchase order duty to Priya Raman (E-1041) in Procure to pay.
Verdict: Allowed.
The agent's request. Please grant the Post journal entry duty to Dana Whitcomb (E-1203) in Treasury.
Verdict: Blocked.
The text of the narrated walkthrough, step by step.