Rule engine

The person who spots the pattern should write the rule.

In Krino a rule is a condition tree: you pick the fields, compose the comparison, set the score. No code, no deployment — the rules live above the data.

Structure

Scenario, version, rule.

Three concepts, all of them yours to control. The complexity matches your business, not the product.

Scenario

Bound to one event type — a loan application, a card payment, a withdrawal. It determines which table is read and who owns the outcome.

Version

The current state of the rules. You work on a draft while the live version is untouched; publishing swaps them and keeps the old one on record.

Rule

A condition tree and a score. If it fires, the score is added; if not, nothing happens. Thresholds turn the total into an outcome.

Visual condition builder showing a trigger condition tree
Condition builder · the same tree the engine evaluates
Conditions

What can a rule look at?

Field comparisons

Equality, ranges, contains, empty, in-list — over the fields of your own data model, combined with nested AND/OR. They are the fields you named; you do not have to translate into somebody else's schema.

Velocity rules

Counts over a time window: how many distinct cards one device tried in 24 hours, how many applications came from one IP in ten minutes. Measure, window and threshold are all set on screen.

Lists

Allow and deny lists, country and BIN lists, and any custom list you maintain. Adding an entry does not mean changing a rule — the list lives on its own.

Derived signals

Whether the email provider is disposable, whether the IP is a datacenter egress, the phone's line type, whether a name resembles a listed one — each usable in a rule like any other field.

From score to outcome

Four outcomes, at thresholds you set.

The total score becomes an outcome. You set the thresholds and you decide what each outcome means downstream.

Approve

It goes through. Recorded, but nobody's time is spent on it.

Review

It goes through, but a case opens — the team looks afterwards.

Block and review

It stops and a case opens. A person makes the call.

Decline

It is refused. The reasoning is on record, ready for the dispute.

Before release

A rule is tried twice before it goes live.

The most expensive version of a new rule is the one that surprises you in production. Krino shows you two ways beforehand.

Against sample data

Download a sample spreadsheet, fill it with your own records, upload it back. For every row you see which rules fired, what they scored and what the outcome was. Nothing published is touched.

Shadow run against live traffic

The draft runs in parallel over live traffic without influencing any decision. When the window closes you know how often it agreed with the live version, where it diverged, and in which direction. Then you publish.

Scenario test screen showing per-record rule results
Scenario test · row by row, before anything is published

Let's build your rules.

Describe the checks you do by hand today; we'll set them up in a demo environment and show you.