Platform
Turn organizational rules into executable controls
Write a rule the way the team that owns the risk would say it, and have it evaluated as code on every action — versioned, owned and replayable.
Policies in force
Policies
8
Teams that own one
6
Finance, Security, Platform, Ops, Procurement, Support Ops. Six teams, not one platform team — which is what makes ownership real rather than nominal.
How the decision is made
Policy is not a prompt.
The decision path holds no inference at all. Bounds are declared and evaluated as code, which is why a decision takes milliseconds, why its cost does not track the price of inference, and why the number can be shown without flinching.
A great deal of AI governance tooling asks a model whether an action is acceptable. That is a reasonable way to classify content and an unreasonable way to authorize a payment, because the two need different guarantees. A classifier may be right most of the time; an authorization control has to be right every time and has to be able to say why.
So there is no model in the decision path at all. A policy compiles to a bound and the bound is evaluated as code, which is why the latency below is in milliseconds and why the inference count is exactly zero rather than low.
Decisions
240
sample estate, 24 hours
Median decision
17ms
policy evaluation
Inference calls
0
not low — zero
Policies applied
8
across 6 teams
Illustrative240 decisions from the OpsAI sample estate over 24 hours, not a customer deployment or a published benchmark. How activity is reported.
Three reasons a prompt cannot hold this job.
- It is not deterministic
- The same request can be judged differently twice, and for a control that either permits or refuses money movement, "usually" is not a property you can operate on or explain afterwards.
- It can be argued with
- Instructions in a context window are input, and anything reaching that window is also input. A rule that lives in the same channel as the request it governs is negotiable by construction.
- It cannot be pointed at
- An auditor asks which clause refused this. A prompt-based control answers with a probability and a paraphrase; a compiled bound answers with a line number and a version.
What a policy actually is
A rule you can read, own and replay.
Four properties, and a policy is only useful if it has all four. Drop ownership and it rots; drop determinism and it cannot be replayed; drop versioning and yesterday's verdict stops being explainable.
- Said the way the business says it
- A refund ceiling in rupees against the order that was actually placed — not a role with write access to a payments endpoint. A rule nobody in the room can read is a rule nobody in the room owns.
- Owned where the risk sits
- Finance writes the refund ceiling. Security writes the export block. A central team that owns every rule becomes a queue, and a queue is what teams route around.
- Evaluated as code
- No inference anywhere in the decision path. Same inputs, same decision, every time — and no prompt to jailbreak, no provider outage between an action and its verdict.
- Versioned and replayable
- Every change is a version with an author and a date, and it can be replayed against past actions before it is published. You see what a tightening would have refused.
One policy, in the form it actually runs.
This is what the canonical refund was decided against. It is not a simplification for the website — the source below is what evaluates.
refund.ceiling
Finance wrote this · 30 Jun 2026Refunds are capped per order and per hour, and only against an order the requester actually placed.
# what a refund may be — not what a model may say
bound issue.refund {
amount <= INR 25_000
scope == order.placed_by(request.subject)
requires order.status in ["delivered","cancelled"]
rate <= 5 / hour / agent
on_exceed deny + escalate(owner)
}Scope: issue.refund
Change history
- v7In forcetightened after a review30 Jun 2026
- v6scope widened to a second system11 May 2026
- v1first published by Finance24 Mar 2026
Read it in four parts.
- Who owns it
- Finance wrote this and answers for it. Not a platform team, and not a committee.
- What it governs
- issue.refund. A policy names the action, not the endpoint, so a vendor reshaping their API does not invalidate the rule.
- What it says
- Refunds are capped per order and per hour, and only against an order the requester actually placed.
- Which version is in force
- v7, since 30 Jun 2026. The evidence record for every decision names the version it was made against, so a verdict stays explainable after the rule changes.
The same rule, as the team says it out loud.
A policy has two faces and both are authoritative. This is the one that gets reviewed in a meeting; the card above is the one that runs. Neither is a translation of the other — they are the same object rendered twice.
- When
- action == issue.refund
- And
- amount ≤ INR 25,000
- And
- scope == order.placed_by(request.subject)
- And
- window == production.write_window
- inside
- authorize + seal evidence
- above ceiling
- hold for named co-signer
- scope mismatch
- deny + record reason
Who writes them
Six teams, and none of them is a governance team.
This is the column that decides whether a control programme survives contact with delivery. A rule written by the team that carries the consequence gets maintained; a rule written on their behalf becomes a ticket.
Policy register
8 policies · 6 owning teams · 11 actions governed| Policy | Owned by | Governs | In the language of the business | Version |
|---|---|---|---|---|
| refund.ceiling | Finance | issue.refund | Refunds are capped per order and per hour, and only against an order the requester actually placed. | v730 Jun 2026 |
| payout.dual_control | Finance | initiate.payout | Any payout above two lakh is held until a named person co-signs. The agent never holds both halves of the authority. | v312 Jul 2026 |
| pii.export_block | Security | export.dataset · read.contract | Personal data leaves only through an approved sink. Everything else is stopped at the action, not flagged after it. | v112 Aug 2026 |
| delegation.depth | Platform | every action | A sub-agent only ever receives a subset of what its parent held. Authority narrows at every hop and never regains breadth. | v420 May 2026 |
| write.window | Ops | update.record · close.ticket · adjust.stock | Writes to production happen inside the working window, when a person is awake to notice them. | v28 Apr 2026 |
| vendor.new_payee | Procurement | create.vendor | A brand new payee cools for twenty-four hours and needs a verified bank account before money can move toward it. | v525 Jul 2026 |
| comms.approved_templates | Support Ops | send.email | Mail to customers uses a reviewed template. The agent chooses which one, never what it says. | v916 Jun 2026 |
| close.controls | Finance | post.journal_entry | Journal entries are bounded by account, by size, and by whether the books for that period are still open. | v61 Jul 2026 |
Finance
3 policies- refund.ceilingv7
- payout.dual_controlv3
- close.controlsv6
Security
1 policy- pii.export_blockv11
Platform
1 policy- delegation.depthv4
Ops
1 policy- write.windowv2
Procurement
1 policy- vendor.new_payeev5
Support Ops
1 policy- comms.approved_templatesv9
IllustrativeThe OpsAI sample estate, covering 11 of 10 declared actions. Every action and what governs it.
Changing a rule safely
Replay it against what already happened, before it governs anything new.
Tightening a policy is the moment a control programme either earns trust or loses it. A change published blind either refuses something legitimate on Monday morning, or turns out to have refused nothing at all.
Because the decision path is deterministic, a proposed version can be run against the actions already on the record and the difference read off exactly. Not estimated — the same inputs produce the same decisions, so the replay is the answer rather than a prediction of it.
This is the concrete thing determinism buys, and it is why it is worth giving up the flexibility a model would have offered. A probabilistic control cannot be replayed, because running it twice does not have to agree.
refund.ceiling — every version
now at v7- v7tightened after a review30 Jun 2026in force
- v6scope widened to a second system11 May 2026
- v1first published by Finance24 Mar 2026
Before the rule runs
Risk
How consequential the action is, scored from what it touches, how much it moves and whether it can be undone.
When it says hold
Approvals
An action above its bound is held for a named co-signer, and expires rather than proceeding.
After it decides
Audit
Every record names the policy version in force, so a verdict stays explainable after the rule changes.
Where to start
Write the rule you already enforce by asking people to be careful.
Every organization has a handful of these — the refund somebody senior checks, the export nobody is quite sure about. They are already policies. They are simply not written anywhere a system can evaluate them.