SOX tiers
Policy Tiers · GREEN · YELLOW · RED · BLACK
Every write goes through policy.classify(amount, account) first. Tier determines auto-post vs HITL vs block. Source of truth: agent/policy.py.
🚦Decisions today
1282
8536 this week
🟢Auto-handled
99%
GREEN + YELLOW · no human
🛎️HITL · today
9
RED-tier requests
⛔Blocked · today
2
BLACK-tier · manual only
GREEN
< $5,000
auto-post
Default · no human in loop
today1184
7d7842
YELLOW
$5,000 – $50,000
auto-post + async Slack alert
FYI to ops · still autonomous
today87
7d612
RED
$50,000 – $500,000
HITL approval required
Pause for human · 30-min SLA
today9
7d68
BLACK
≥ $500,000 OR regulated
manual escalation · no auto path
Finance manager only · audited
today2
7d14
Test it
Classify any amount · live call to agent/policy.py via FastAPI
The decision tree
How a write gets classified
amount = abs(write.amount) if amount < 5_000: return GREEN # auto-post elif amount < 50_000: return YELLOW # auto-post + async Slack alert elif amount < 500_000: return RED # HITL approval required (30-min SLA) else: return BLACK # manual escalation only # Regulated accounts (suspense · intercompany) always escalate to BLACK # regardless of amount