Rules for the clear cases. AI for the rest. A safe answer always.
An optional layer on top of your aggregations that answers your own questions: approve or review, route or dismiss, allow or step up, throttle or not. Every answer comes with its source and a full record.
- PayoutsRelease this payout?approveRule
- CommerceApprove this order?reviewGuard
- GamingHold this trade for review?noRule
- SupportWhich team gets this ticket?billingModel · 88 % sure
- DevicesSend a technician?reviewFallback · unsure
Illustration. Questions and answers are examples.
From live numbers to an answer, in steps you order
A decision reads what it needs, lets your rules answer the clear cases, asks a model only when they leave it open, and checks that answer against your guards. When nothing settles it, your safe answer does.
Running totals and values for this case.
- Payouts today · 1
- Account age · 2 years
The first rule that holds answers.
Only when the rules leave it open.
Checked after the model. They can overrule it.
When the model is unsure, slow, down or over budget.
Saved with its full record.
rulesA clear case: the first rule holds and answers. The model is never asked, so it costs nothing.
- Inside a request
Your app asks and waits for the answer, like it asks any question.
- On an event
A trigger runs the decision; the answer goes to the result stream and your webhooks.
- Explain
The same request with the full trace. It applies nothing and saves nothing.
Clear cases never reach a model
Rules read the same live numbers as everything else. Put them before the model to settle what is obvious, and after it to keep the model inside lines you draw.
- The first rule that holds answers, with no model call and no model cost
- Guard rules after the model can overrule it: never approve above 5,000 EUR without a person
- Rules keep answering when models are down or the monthly budget is spent
- Your own questions: yes or no, one of several options, or an ordered score, up to 8 per decision
failed_signins_1h >= 10blockknown_device && failed_signins_1h == 0allow
Only the values you list, with your policy in plain words.
failed_signins_1h >= 5step upamount > 5000review
Steps run in your order. Rule expressions are examples.
The model sees little, and never has the last word
You decide what a model may see, how sure it must be and what it may cost. Whatever goes wrong, a safe answer comes back.
useru_48213never leavesemaillena@…never leavesfailed_signins_1h6new_devicetruecountry_changedtrueaccount_age_days740
failed_signins_1h6new_devicetruecountry_changedtrue
Only the values you list leave Aggrelis. Ids never do, in clear or hashed.
- Only the values you list
Nothing else is sent. Ids never leave, not even hashed.
- Data, not instructions
Text from a request is marked as data, so it cannot steer the model.
- Control models
Up to three more models cross-check the first. You choose: the first decides, all must agree, or most.
- Minimum confidence
Below the confidence you set, your safe fallback answers.
- A fallback is an answer
Unsure, disagreeing, slow, failing or paused models all end in your safe answer, never an error.
- Monthly budget
Checked before every model call. The meter turns amber at 80 % and red at 100 %.
- In your region
Models run in the installation's region. The hosted service runs in the EU.
- Zero data retention
An owner can require it. Then only models that offer it serve your workspace.
See how it would decide before it decides
Run a new version next to the live one, on real cases, and switch only when you like what you see.
- Shadow versions run next to the live one on a share of cases and only record
- Agreement per question over the last 7 days, and every case that differed
- Rule replay: would a draft's rules have answered the last 200 decisions differently? No model is called
- Try it: run a draft for one case and read the full trace; nothing is applied
- Wire a new decision in early: with only a shadow version, it answers its fallback
| live / shadow | approve | review | decline |
|---|---|---|---|
| approve | 412 | 18 | 0 |
| review | 9 | 96 | 4 |
| decline | 0 | 3 | 37 |
Last 200 decisions: 6 would change.
Build it in tables. Read every answer's record.
Every automated decision is explained, recorded and reviewable for 400 days.
| Step | Kind | Runs | |
|---|---|---|---|
| Sign-ins per userat once | Read | always | |
| Device | Read | always | |
| Failure ratio | Compute | always | |
| Clear cases | Rules | always | |
| Ask the model | Model | if still open | |
| Guards | Rules | after the answer |
actionchoiceallow · step up · block- ReadSign-ins per user, device
- RulesNo rule holds
- Modelallow · 81 % sure
- Guards5+ failed sign-ins: step up
failed_signins_1h: 6 new_device: true country_changed: true
primaryallow81 %controlallow77 %
Illustrated mock-ups of the workspace. Names and values are examples.
Common questions ready to go, or your own
Three templates to start from. Any yes or no, choice or score your product has to make fits the same shape.
- Approve, review or decline
Template. For payments, payouts, orders, refunds or sign-ups.
choice: approve · review · decline - Alert triage
Template. Decide which alerts reach a person and which wait.
choice: escalate · dismiss - Step-up authentication
Template. Let a sign-in or action through, ask for a second factor, or stop it.
choice: allow · step up · block - Throttle or not
Your own question. Slow an API key, a device or a player down as they near a limit.
yes / no - Route or dismiss
Your own question. Send a ticket, lead or order to the right team, or let it go.
choice: sales · support · billing · dismiss - How urgent is it?
Your own question. Rank a reading, a delivery or a claim so the urgent ones come first.
score: low · medium · high
Say what you need. Get drafts to review.
The same care applies while you build. AI help only proposes: nothing is saved or switched on until a person does it.
- Draft with AI: describe a metric in words; it asks up to four questions, plans what to create or reuse, and drafts it
- Explain an answer or a Try it run in plain sentences
- Summarize a decision record for the person who reviews the case
- Fix with AI for any expression
- Suggest a policy from the cases where a shadow version disagreed
Tell me when an API key uses more than 90 % of its plan within a minute.
Per key, or per account across all its keys?
Per key.
- ReuseAPI calls per key, last minute
- CreatePlan limit per key
- CreateQuestion: near the limit?
calls_1m / plan_limit > 90%calls_1m / plan_limit > 0.9What decisions do not do
Put a safe answer behind every question
Start with your aggregations, add rules, and let a model help only where it earns its place.