COLLECT + SUM. Múltiplas regras podem ser ativadas por um único depósito — os pontos são somados em cada módulo antes do cálculo do score final.
Todas as regras são avaliadas com FEEL (Friendly Enough Expression Language) conforme a spec DMN 1.3. Intervalos fechados
[a..b] incluem os extremos; [a..b) exclui o limite superior.Módulo 1 — Risco Financeiro
Decision ID:financial-risk-score · Peso no score final: 40%
Avalia o valor do depósito individual, o volume mensal acumulado e a proporção de saques sobre depósitos.
Regras
withdrawalRatio é calculado pelo consumer Go antes da correlação: withdrawalRatio = withdrawals_total_amount / deposits_total_amount. Nunca divide por zero — se deposits_total_amount = 0, o ratio é 0.0.Exemplos — Risco Financeiro
Exemplo 1 — Score ZERO (sem triggers)
Exemplo 1 — Score ZERO (sem triggers)
Perfil: Jogador recreativo, depósito pequeno, volume mensal baixo, sem saques expressivos.
scoresFinancial = 0Exemplo 2 — Score MÁXIMO (todos os triggers)
Exemplo 2 — Score MÁXIMO (todos os triggers)
Perfil: Depósito acima do COAF, volume mensal altíssimo, ratio de saque extremo.
scoresFinancial = 95Interpretação de risco: Depósito de R$ 35k com 95% sacado no mesmo mês é um padrão clássico de layering — o dinheiro passa pela plataforma sem finalidade legítima de jogo, apenas para obter histórico de transação “limpo”.
Exemplo 3 — Risco Moderado (apostador regular elevado)
Exemplo 3 — Risco Moderado (apostador regular elevado)
Perfil: Usuário frequente com depósitos médios e padrão saudável de saques.
scoresFinancial = 50Módulo 2 — PLD / AML
Decision ID:aml-rules · Peso no score final: 30%
Implementa as obrigações da Lei 9.613/98, Circular BACEN 3.978/2020 e COAF Resolution 36/2021. Avalia indicadores de lavagem de dinheiro com ênfase em operações de alto valor, ausência de KYC e redes de contas suspeitas.
Regras
Conceitos das Regras
Contas vinculadas são detectadas por IPS (IP/device fingerprint compartilhado). O campoips.linked_accounts contém os user_ext_id das contas que compartilham o mesmo dispositivo ou endereço IP recente.
Smurfing é a técnica de fragmentar operações entre múltiplas contas para ficar abaixo dos limiares de reporte. A presença de 5+ contas vinculadas é um indicador forte desse padrão.
KYC pendente em operações de alto valor indica que o operador aceitou um depósito relevante antes de completar a identificação do usuário — violação potencial das obrigações de “conheça seu cliente”.
Exemplos — PLD / AML
Exemplo 1 — Score ZERO (usuário verificado, isolado)
Exemplo 1 — Score ZERO (usuário verificado, isolado)
Perfil: Usuário com KYC aprovado, sem contas vinculadas, depósito dentro do normal.
scoresAml = 0Exemplo 2 — Score MÁXIMO (lavagem clássica)
Exemplo 2 — Score MÁXIMO (lavagem clássica)
Perfil: Depósito COAF, KYC pendente, 7 contas no mesmo dispositivo.
scoresAml = 110 (capped em 100 no score final ponderado)Interpretação de risco: Combinação perfeita das três fases de lavagem: placement (depósito em cash equivalente), layering (múltiplas contas fragmentando a origem) e ausência de KYC que dificultaria rastreamento. Reporte COAF obrigatório.
Exemplo 3 — Sinal de alerta (linked accounts sem grandes valores)
Exemplo 3 — Sinal de alerta (linked accounts sem grandes valores)
Perfil: Usuário com 3 contas vinculadas, KYC aprovado, depósito moderado.
scoresAml = 25Interpretação: Poderia ser uma família compartilhando dispositivo. Score baixo, mas merece monitoramento — especialmente se o volume de depósitos crescer.
Módulo 3 — Comportamento / Ludopatia
Decision ID:behavior-score · Peso no score final: 30%
Detecta padrões comportamentais associados a jogo problemático (ludopatia) e uso intensivo que pode indicar transtorno de jogo. Alinhado às diretrizes da Portaria SPA/MF nº 827/2024 sobre jogo responsável.
Regras
Definição dos flags de volume
Os flagssportsBetsHigh, casinoBetsHigh, sportsBetsModerate e sportsBetsLow são computados pelo consumer antes de enviados ao Camunda:
Exemplos — Comportamento
Exemplo 1 — Score ZERO (lazer saudável)
Exemplo 1 — Score ZERO (lazer saudável)
Perfil: Apostas esportivas leves, sem cassino, sem ganhos expressivos.
scoresBehavior = 0Exemplo 2 — Score MÁXIMO (ludopatia severa)
Exemplo 2 — Score MÁXIMO (ludopatia severa)
Perfil: Alto volume em esportes e cassino, ganhos de R$ 12k — padrão de jogo compulsivo.
scoresBehavior = 90Interpretação de risco: Volume de apostas incompatível com a renda típica, combinação esportes+cassino (multimodal compulsive gambling) e ganhos de R$ 12k em cassino online são vetores clássicos de integração na lavagem e de jogo compulsivo severo. Intervenção de jogo responsável recomendada.
Exemplo 3 — Risco Moderado (cassino recreativo com algum ganho)
Exemplo 3 — Risco Moderado (cassino recreativo com algum ganho)
Perfil: Apostas de cassino moderadas com ganho relevante.
scoresBehavior = 35Cenário Completo: Low Risk vs. High Risk
A tabela abaixo resume como os dois perfis de teste domake kafka-produce ativam as regras DMN: