- Before
- “I don't want more alerts. I want to know which three things need me, and proof that last week's fixes held.” Today she learns of a broken control at interim testing.
- Now
- Starts at 08:00 with the agents' brief, decides suppressions and escalations, and signs off every critical case after its re-test.
One SoD conflict, from granted to proved fixed in a morning
Kestrel & Vane Group runs 64 SAP company codes on one S/4HANA production system, with a shared service centre in Zagreb. At 21:47 on 13 October an accounts payable specialist who already maintains vendors is given payment release. Here is what happens next, screen by screen, in the working solution.
- 0108:04
The overnight brief, as a conversation
Elena Brandt · SOX Program ManagerElena's day starts with the agents reporting what they did overnight: 148 controls tested, 142 green, 6 open cases, 9 items suppressed with a reason, 3 that need her. Each agent writes in plain words, with a citation behind every figure and a button for the next step. On the side, “Waiting on you” lists the critical ITGC-12 case, the ITGC-04 escalation and a request to extend a known exception.
Usage checker: “ITGC-12, critical. User mkovac was given payment release at 21:47 while she already maintains vendors. I read the logs: the conflict was not used. Daniel Osei has the case and three options.”
- 02The pulse
Every key control on one calm screen
Elena Brandt · SOX Program ManagerThe control pulse is one strip per monitored control: ninety nights of results as a line, and last night's exceptions as dots she can count — solid for open, hollow for suppressed. The six controls with exceptions sit at the top under their status: with owner, escalated, re-testing. Green controls are folded away, and the agents' conversation sits beside the list, ready to answer or take an instruction.
“Next: ITGC-12 is critical. The agents have the record, checked it was not used, and gave Daniel Osei three options.”
- 0302:14 overnight
The exception arrives with its system records
Monitoring agentITGC-12 — no user can both maintain vendors and release payments — tests rule SOD-P2P-04 across 18,406 dialog users in 64 company codes. Clean for 89 nights, it found one user: mkovac holds Z_AP_VENDOR_MAINT since 4 March 2025 and was given Z_FI_PAYMENT_RELEASE at 21:47, valid to 31.12.9999. The drawer shows the AGR_USERS rows, the user record and ServiceNow request RITM0048213, “Holiday cover for payment runs, 14–25 Oct”, filed as a standard catalog item, so the access check never ran.
Every record is read through a read-only account and stamped with who read it and when.
- 0402:16
“Can do” is not “did do” — answered before anyone asks
Usage checkerThe usage checker read the change documents and the transaction log for the whole window, 21:47 to 02:14: 0 payment runs, 0 payment releases, 0 vendor creates or changes, 0 bank-detail changes. She displayed vendor lines three times, read only. When Elena asks in the case “Was the access used?”, the answer comes back with its source and a confidence of 0.98.
Its limit: below a confidence of 0.95 the usage checker never says “not used” — it says it could not tell, and asks a person.
- 0502:18 – 02:19
One case, three options, a recommendation
Triage agent and remediation agentThe triage agent opened CASE-1047: one exception, one cause, severity Critical by rule, due 18:00 the same day. It checked the two active known exceptions, SUP-027 and SUP-029, and neither applies. The remediation agent then asked Daniel Osei, the control owner, with the records and three options: A, remove payment release (recommended, because Ivan Horvat already releases payments for company code 3100 without vendor maintenance); B, remove vendor maintenance until 25 Oct; C, keep both for at most 14 days under a daily review, which needs the SOX Program Manager's approval.
“You make the change in SAP; the agents never change access themselves.”
- 0609:41 · 09:52
Fixed by the owner, proved by a re-test
Daniel Osei · SAP Security Lead, and the re-test agentDaniel chooses option A with reason code RM-01 · Access removed and the note “Cover through Ivan Horvat, agreed with Petra Novak.” He ends the role in SAP (change document 0004417782). The re-test agent re-runs rule SOD-P2P-04 on live data for mkovac and for all 212 users of company code 3100: 0 conflicts, and the exception no longer reproduces. ITGC-12 is green from 09:53.
The re-test agent never closes a case on the owner's word. If its result disagrees, it says so and the case stays open.
- 0710:02 · Signed off
Two people behind every critical fix
Elena Brandt · SOX Program ManagerCritical cases need a second person: the owner resolved, the SOX Program Manager signs. Elena confirms that she reviewed the records, the usage check and the re-test, and signs off. The case closes, and the remediation agent opens follow-up FUP-118 for Amira Haddad: run the access check on every temporary access request. From grant to proved fix took one night and one morning.
“I reviewed the records, the usage check and the re-test, and agree the case is closed.”
- 08Same morning
A protective action that runs only on his yes
Marcus Okafor · AP DirectorIn CASE-1046, P2P-03 found two vendor bank-detail changes by one user, jbarros, with no call-back. The Fernhill Logistics request came by email from a domain registered on 9 Oct, marked urgent, with an unsigned letterhead, and Fernhill is due €48,760 in the 16 Oct payment run. The remediation agent proposes a payment block on the vendor; Marcus approves or declines it, and then chooses how to resolve the changes.
“Protective action proposed: a payment block on vendor 300418 Fernhill Logistics, holding €48,760 from the 16 Oct run until the change is verified. It runs only if the owner approves.”
- 09Repeat failure
Third failing month: fix the process, not the instance
Escalation agentITGC-04 — firefighter sessions reviewed within 48 hours — failed in August, September and October, each time at period end, when the review rota had nobody assigned. Three failing months in 90 days is the repeat-failure rule, so the escalation agent brings it to Elena with the history and recommends raising it for deficiency evaluation with a rota fix by 31 Oct. She decides with a reason code; classification stays with her and the Internal Audit Director.
“Fixing the instance again will not stop it.”
- 1007:52
A suppression is a decision, with an expiry
Triage agentMarcus asks to extend known exception SUP-027 — three-way-match tolerance overrides at the Ostrava plant during a warehouse migration — to 30 Nov. The triage agent shows the volume falling every week, from 41 a night on 18 Sep to 7 tonight, reaching zero around 8 Nov, and recommends 15 Nov. Elena approves to 15 Nov, approves to 30 Nov or rejects, with a reason code; she cannot be the requester.
“I recommend 15 Nov: a week of margin, without hiding new problems for three weeks.”