Keep play fair and players safe.
Deposits, sessions, wagers, transfers and messages are counted per player and device, so the limits players choose hold and abuse stands out while the game is running.
watching
watching
watching
The questions this answers
Typical questions, each with the window it usually looks at. Thresholds are starting points you set yourself.
- Honour deposit limits
How much has this player deposited today, this week and this month, against the limits they set?
calendar day, week and month, player's time zone - Track time played
How many minutes has this player played today and this week?
calendar day and week, player's time zone - Check bonus wagering
How much has this player wagered since their last bonus, before they cash out?
since the last bonus, at most 30 days - Find multi-accounting
How many different accounts play from this device?
rolling 30 days - Spot chip dumping
How much has one player passed to the same other player, again and again?
rolling 7 days, per sender and receiver - Throttle chat floods
How many messages did this player send, to how many different players, and how often were they reported?
rolling 10 minutes
A weekly deposit limit the player chose
A player set themselves a weekly deposit limit of 200 EUR. Before each deposit, your cashier asks how much they have deposited this week, in their own time zone, with this deposit added. Over the limit, the deposit is refused and the player sees what is left of their week.
- Send each completed deposit with the player and the amount
- Define deposits per player, exact to the cent; keep each player's own limit and time zone on the player
- Ask before each deposit, with its amount: where would the week end up?
- Act: refuse what goes over the limit and show the player what is left
{
"id": "dep_55018",
"type": "deposit_completed",
"ts": "2026-11-02T19:05:44Z",
"attrs": {
"player_id": "p_5120",
"amount": "50.00",
"currency": "EUR"
}
}{
"name": "deposit_check",
"description": "This week's deposits against the player's own limit",
"spec": {
"entity": "player",
"input": [{"name": "amount", "type": "decimal(2)"}],
"features": {
"depositsToday": {
"state": "deposits_by_player",
"window": {"calendar": "day", "tz": "subject.timezone", "defaultTz": "UTC"}
},
"depositsThisWeek": {
"state": "deposits_by_player",
"window": {"calendar": "week", "tz": "subject.timezone", "defaultTz": "UTC"}
}
},
"derived": [
{
"name": "weekAfter",
"expr": "double(depositsThisWeek) + (has(input.amount) ? input.amount : 0.0)"
}
],
"reasons": [
{
"name": "over_own_limit",
"when": "has(entity.weeklyLimit) && weekAfter > double(entity.weeklyLimit)"
}
]
}
}{
"entity": {"type": "player", "id": "p_5120"},
"values": {
"depositsToday": "50.00",
"depositsThisWeek": "170.00",
"weekAfter": 220
},
"reasons": ["over_own_limit"],
"degraded": [],
"skipped": [],
"profileVersion": "deposit_check@v3",
"configVersion": 18,
"evaluatedAt": "2026-11-02T19:06:10.207Z"
}The parts of Aggrelis behind it
Nothing built for one industry: the same building blocks, configured for this job.
- The player's own week
Day, week and month start at the player's local midnight, from the time zone you keep for them.
- Since the last bonus
Wagering counted from the player's last bonus, not from a fixed date.
- Exact amounts
Deposits and wagers as exact decimals, per currency, never rounded through floating point.
- How many different
Accounts per device, players one player sends to, recipients per message: counted per player, device or pair.
- Ask before the deposit
The answer comes back inside the cashier's request, and results can be pushed to your player-safety team.
- Change rules without a release
Your team adjusts thresholds and tests them on real play in the workspace.
Your first live numbers, configured not coded
Tell us what you would count first, and we'll help you set it up.