Pular para o conteúdo principal
TrackJud TrackJud
· Atualizado em · 11 min de leitura

Risk Score Judicial em 2026: Metodologia + Pesos + Exemplos

Por TrackJud

Como calcular um score de risco baseado em histórico processual: 5 fatores ponderados, exemplos com CPF e CNPJ, código de referência. Pra fintechs.

O score de crédito tradicional (Serasa, Boa Vista, Quod, SPC) mede uma dimensão: histórico de pagamentos. Mas a inadimplência futura é multifatorial — passivos trabalhistas ocultos, execuções fiscais em aberto, padrão de litigância elevado podem ser preditores tão fortes quanto atrasos pontuais. Esses sinais ficam fora do bureau e dentro dos tribunais.

Este post descreve uma metodologia prática pra calcular score de risco judicial a partir de dados processuais públicos. Foca em fintechs, bureaus e times de crédito que querem complementar o score tradicional sem reinventar a roda. Inclui pesos sugeridos, exemplos numéricos com CPF e CNPJ reais (de teste), e código de referência.

A premissa: você já tem acesso aos dados processuais via API (próprios scrapers ou via Vigilant). O que falta é a fórmula que transforma processos em um número de 0 a 1000.

Por que score de crédito tradicional é insuficiente

O score de bureau é calculado a partir de um conjunto fechado de inputs: dívidas inscritas, protestos, consultas, atrasos em concessores parceiros. Esses inputs vêm da base de pagamentos formais — o que fica fora de pagamentos formais não entra.

Três blind spots concretos:

  1. Passivo trabalhista oculto. Uma reclamação trabalhista de R$ 200 mil contra uma empresa não aparece no bureau até virar dívida inscrita pós-trânsito em julgado — o que pode levar 5+ anos. A empresa fica com score 800 enquanto carrega o passivo.
  2. Execução fiscal estadual ou municipal. Dívidas de ICMS, IPTU, ISS são executadas pelo TJ, não pela Receita Federal. Não entram no bureau federal. Em algumas operações de crédito, descobrir uma execução fiscal de R$ 500 mil seria deal-breaker — mas o bureau diz “não há restrições”.
  3. Padrão de litigância. Cliente que abre 3 ações de cobrança no mesmo trimestre tem perfil financeiro estressado mesmo sem inadimplência reportada. Esse sinal está disponível no histórico processual mas não no bureau.

A consulta processual via API resolve os três blind spots — desde que os dados sejam transformados num sinal numérico utilizável. Score judicial é essa transformação.

Os 5 fatores do score

Existem dezenas de variáveis que poderiam entrar no cálculo. Por simplicidade e auditabilidade, recomendo um modelo de 5 fatores ponderados, cada um normalizado de 0 a 1:

Fator 1: Volume processual (peso sugerido: 25%)

Quantidade absoluta de processos em que o titular é parte. Não é o fator mais importante isolado, mas é a base — sem volume, os outros fatores são zero.

Heurística:

  • 0 processos → fator = 0,0 (sem risco neste eixo)
  • 1-2 processos → fator = 0,2
  • 3-5 processos → fator = 0,4
  • 6-15 processos → fator = 0,6
  • 16-50 processos → fator = 0,8
  • 50+ processos → fator = 1,0

Pra PJ, ajustar por porte: volume bruto deve ser dividido por número de funcionários (ou faturamento) pra normalizar. Empresa com 1000 funcionários tendo 30 ações trabalhistas é normal. Empresa com 10 funcionários tendo 30 ações é gravíssimo.

Fator 2: Severidade do tipo (peso sugerido: 30%)

Nem todo processo pesa igual. Inventário e alvará são neutros pra risco de crédito; execução fiscal e recuperação judicial são red flags severos. Tabela de severidade sugerida:

Tipo de processo (campo classe)Severidade
Recuperação judicial / Falência1,0 (crítico)
Execução fiscal0,9
Execução de título extrajudicial0,8
Cobrança / Monitória0,7
Trabalhista (réu)0,7
Penal / Crime tributário0,9
Ação de improbidade administrativa0,9
Cível ordinário (réu)0,5
Cível ordinário (autor)0,1
Família0,1
Inventário, alvará0,0

O score por severidade é a média ponderada das severidades dos processos do titular. Excluir os zeros (família, inventário) do denominador evita diluir o sinal.

Fator 3: Recência (peso sugerido: 20%)

Processo distribuído este ano pesa mais do que processo arquivado em 2018. Decay exponencial com half-life de 24-36 meses funciona bem:

peso_temporal(processo) = exp(-meses_desde_distribuicao / 30)

Onde 30 é o tempo característico (meio-vida ≈ 21 meses). Um processo de 1 ano tem peso 0,67. De 5 anos, 0,13. De 10 anos, 0,02. O fator 3 é a média dos pesos temporais.

Fator 4: Condenação efetiva (peso sugerido: 15%)

Processo apenas distribuído ≠ processo com sentença condenatória. O Vigilant retorna o campo situacao que permite distinguir:

  • Em andamento (sem desfecho): peso 0,3
  • Sentenciado favoravelmente (pra o titular réu): peso 0,1
  • Sentenciado desfavoravelmente: peso 1,0
  • Acordo homologado: peso 0,5
  • Arquivado por desistência: peso 0,2

O fator 4 é a média ponderada por severidade dos pesos de condenação. Esse fator é o mais demorado de calcular — exige análise das movimentacoes pra detectar sentença, e nem todos os processos têm desfecho claro. Em muitas implementações iniciais, esse fator é simplificado pra “tem ou não tem trânsito em julgado contra”.

Fator 5: Padrão comportamental (peso sugerido: 10%)

Sinais qualitativos sobre comportamento processual:

  • Recorrência de mesmo tipo: 5 ações trabalhistas em 3 anos sugere problema de gestão de pessoal.
  • Litigância contra o mesmo polo: cliente que processa o mesmo banco 4 vezes tem perfil de litigante recorrente.
  • Uso de juizados especiais com frequência: > 3 ações em JEC nos últimos 24 meses é red flag (cliente usa o judiciário como substituto de cobrança).
  • Mudança brusca de volume: triplicar o número de processos em 6 meses sinaliza estresse financeiro agudo.

Esses sinais são qualitativos. Pra modelo simples, atribuir 0 ou 1 binário (tem padrão ou não). Pra modelo avançado, normalizar pela proporção do portfólio.

Fórmula do score final

score_judicial = 1000 - (
    0,25 × fator_volume +
    0,30 × fator_severidade +
    0,20 × fator_recencia +
    0,15 × fator_condenacao +
    0,10 × fator_padrao
) × 1000

Resultado entre 0 e 1000, onde 1000 = sem risco judicial detectado, 0 = risco máximo.

A inversão (1000 - X × 1000) é por convenção — score de crédito tradicional já segue essa orientação (“quanto maior, melhor”), e manter coerência facilita a integração no motor de decisão.

Exemplos numéricos

Caso 1: Pessoa Física com baixo risco

CPF de teste: 529.982.247-25 (inválido, exemplo apenas).

Histórico processual fictício:

  • 1 ação cível como autor (cobrança de inquilino) — 2024
  • 1 inventário como herdeiro — 2023
  • 0 ações como réu

Cálculo:

  • Volume: 2 processos → 0,2
  • Severidade: cível autor (0,1) + inventário (0,0) → 0,05 média
  • Recência: ambos < 24 meses → ~0,7 média (peso temporal)
  • Condenação: nenhum desfecho ruim → 0,1
  • Padrão: nenhum sinal qualitativo → 0,0

Score = 1000 − (0,25 × 0,2 + 0,30 × 0,05 + 0,20 × 0,7 + 0,15 × 0,1 + 0,10 × 0,0) × 1000 = 1000 − (0,05 + 0,015 + 0,14 + 0,015 + 0,0) × 1000 = 1000 − 220 = 780 (risco baixo)

Caso 2: Pessoa Jurídica com risco elevado

CNPJ fictício: empresa de construção civil, 50 funcionários.

Histórico processual:

  • 12 ações trabalhistas como ré (8 em andamento, 4 com sentença condenatória)
  • 3 execuções fiscais municipais (ISS) em andamento
  • 1 ação cível ordinária como ré (cobrança de fornecedor) em andamento
  • 1 recuperação judicial arquivada em 2020 (3 anos atrás)

Cálculo:

  • Volume: 17 processos → 0,8 (mas dividido por porte: 17/50 = 0,34 funcionários por processo, dentro do esperado pra setor) → 0,5 ajustado
  • Severidade: trabalhista réu (0,7 × 12) + execução fiscal (0,9 × 3) + cível réu (0,5 × 1) + recuperação (1,0 × 1) → média 0,71
  • Recência: 16 processos recentes (< 24 meses) + 1 processo de 4 anos → 0,80 média
  • Condenação: 4 trabalhistas condenadas + 1 recuperação arquivada → 0,52 média ponderada
  • Padrão: recorrência trabalhista + recuperação anterior → 1,0

Score = 1000 − (0,25 × 0,5 + 0,30 × 0,71 + 0,20 × 0,80 + 0,15 × 0,52 + 0,10 × 1,0) × 1000 = 1000 − (0,125 + 0,213 + 0,16 + 0,078 + 0,10) × 1000 = 1000 − 676 = 324 (risco alto)

Em qualquer modelo de motor de decisão, 324 entraria como sinal forte de hesitação. Combinado com score de bureau, o analista humano (ou modelo) decide.

Código de referência (Python)

import math
from datetime import datetime
from typing import List, Dict

CLASSE_SEVERIDADE = {
    "Recuperação Judicial": 1.0,
    "Falência": 1.0,
    "Execução Fiscal": 0.9,
    "Execução de Título Extrajudicial": 0.8,
    "Cobrança": 0.7,
    "Monitória": 0.7,
    "Reclamação Trabalhista": 0.7,
    "Ação Penal": 0.9,
    "Improbidade Administrativa": 0.9,
    "Procedimento Comum Cível": 0.5,
    "Inventário": 0.0,
    "Alvará": 0.0,
}

def fator_volume(num_processos: int) -> float:
    if num_processos == 0: return 0.0
    if num_processos <= 2: return 0.2
    if num_processos <= 5: return 0.4
    if num_processos <= 15: return 0.6
    if num_processos <= 50: return 0.8
    return 1.0

def fator_severidade(processos: List[Dict]) -> float:
    pesos = [
        CLASSE_SEVERIDADE.get(p["classe"], 0.5)
        for p in processos
        if CLASSE_SEVERIDADE.get(p["classe"], 0.5) > 0
    ]
    return sum(pesos) / len(pesos) if pesos else 0.0

def peso_temporal(data_distribuicao: str) -> float:
    dt = datetime.strptime(data_distribuicao, "%Y-%m-%d")
    meses = (datetime.now() - dt).days / 30
    return math.exp(-meses / 30)

def fator_recencia(processos: List[Dict]) -> float:
    if not processos: return 0.0
    pesos = [peso_temporal(p["distribuido_em"]) for p in processos]
    return sum(pesos) / len(pesos)

def calcular_score(processos: List[Dict]) -> int:
    f1 = fator_volume(len(processos))
    f2 = fator_severidade(processos)
    f3 = fator_recencia(processos)
    f4 = 0.3  # placeholder — precisa parsear movimentacoes
    f5 = 0.0  # placeholder — análise comportamental

    risco_normalizado = (
        0.25 * f1 + 0.30 * f2 + 0.20 * f3 + 0.15 * f4 + 0.10 * f5
    )
    return int(1000 * (1 - risco_normalizado))

# Uso:
processos = vigilant_api.consultar_cpf("529.982.247-25", courts=["TJSP", "TJRJ", "TJMG"])
score = calcular_score(processos["data"]["courts"][0]["processes"])

Versão de produção tem: parsing real de movimentacoes pra detectar sentença, normalização por porte da empresa (PJ), decay temporal calibrado por out-of-sample validation, e o quinto fator (padrão) extraído por análise temporal de séries.

Estado regulatório

A LGPD (Lei 13.709/2018, art. 7º, §4º) dispensa consentimento pra dados “tornados manifestamente públicos pelo titular”. Processos judiciais publicados nos portais públicos dos tribunais (ESAJ, PJE, etc.) se enquadram nessa hipótese — não exigem consentimento explícito do titular pra serem consultados em fluxo de KYC.

A Resolução CNJ 121/2010 estabelece que dados processuais não-sigilosos são públicos e devem ser disponibilizados de forma acessível. Isso fundamenta legalmente a consulta automatizada — desde que seja pra propósito legítimo (KYC, due diligence, auditoria) e que segredo de justiça seja respeitado (o sistema oficial naturalmente filtra processos sigilosos).

A Circular BACEN 3.978/2020 (KYC) exige verificação proporcional ao risco do cliente. Em operações de crédito de valor relevante, depender exclusivamente do score de bureau pode ser insuficiente em auditoria — score judicial é um complemento defensável regulatoriamente.

A ANPD reforçou em guia orientativo de 2023 que dados em portais públicos oficiais podem ser tratados sem consentimento se o propósito for legítimo (compliance regulatório, KYC, exercício regular de direitos). Mantenha audit log da consulta — o Vigilant gera automaticamente.

Implementação no pipeline de KYC

Três caminhos comuns:

  1. Inline (síncrono no checkout) — quando crédito vai ser concedido em segundos, o motor consulta a API, calcula score, decide. Adequado pra crédito instantâneo de baixo ticket. Latência ~60 segundos por CPF — limite hard.
  2. Pré-calculado (assíncrono com cache 24h) — score é calculado num cron diário pra todos os clientes ativos, salvo no perfil. Decisão usa o cache. Latência sub-segundo. Adequado pra crédito de médio ticket.
  3. Monitoramento contínuo (event-driven) — cliente é cadastrado em watchlist do Vigilant, que dispara webhook quando novos processos surgem. O score é recalculado no momento da mudança. Adequado pra carteira sob gestão (empréstimos parcelados, convênios B2B).

A escolha depende do SLA da decisão e do tamanho do portfólio. Pra fintechs com 50k+ clientes ativos, opção 3 é a mais econômica — você não consulta clientes que não tiveram mudança.

Próximos passos

A metodologia descrita é um ponto de partida. Calibração com dados reais do seu portfólio (label de inadimplência ou churn nos próximos 12 meses) é o que transforma um modelo heurístico num modelo preditivo. Os pesos sugeridos servem pra primeira versão — substitua por coeficientes aprendidos via regressão logística ou XGBoost assim que tiver volume.

Perguntas frequentes

Score de risco judicial substitui o score de crédito tradicional?

Não — complementa. Score de crédito (Serasa, Boa Vista, Quod, SPC) mede capacidade de pagamento histórica via dívidas inscritas, protestos, consultas e atrasos. Score judicial mede exposição a litígios, passivos contingentes e padrões de comportamento processual. Os dois sinais são ortogonais: um cliente com score de crédito 850 pode ter execução fiscal de R$ 800 mil que não aparece no bureau. Um cliente com score 600 (atrasos pontuais) pode não ter litígio relevante. A combinação é o que aproxima o risco real. Em pipelines maduros, o score judicial entra como sinal adicional num modelo logístico, não como substituto.

Os pesos sugeridos neste post são consenso de mercado?

Não — são heurísticos baseados em padrões observados em portfólios de fintechs e bureaus que processamos. Cada operação tem mix de risco diferente: uma fintech B2C com ticket médio R$ 500 pondera diferente de uma instituição de crédito empresarial com tickets de R$ 100k+. A recomendação é usar os pesos como ponto de partida e calibrar com dados de inadimplência reais do seu portfólio (validação out-of-sample). Em produção, score judicial é normalmente integrado num modelo logístico ou gradient-boosted que aprende os pesos automaticamente a partir do label de inadimplência ou churn — esse é o estado da arte.

Posso usar score judicial pra negar crédito automaticamente?

Pode, mas com cuidado regulatório. A LGPD garante o direito do titular à revisão de decisão automatizada (art. 20). Se o crédito for negado com base predominantemente no score judicial, é boa prática (1) registrar quais sinais judiciais entraram no cálculo, (2) permitir que o titular conteste a decisão, e (3) ter um humano revisor pra casos de borda. Em decisões 100% automatizadas com baixo risco (microcrédito até R$ 5k), a maioria das fintechs usa score como gate sem revisão humana. Em crédito empresarial alto, a melhor prática é score como input de um analista humano — não decisor único.

Como tratar processos arquivados ou já transitados em julgado?

Depende da idade e do desfecho. Um processo trabalhista arquivado por acordo (acordo homologado em juizado) há 5 anos com pagamento integral tem peso diferente de um processo arquivado por desistência sem indenização, ou de uma execução fiscal com bem penhorado. Recomendação prática: aplicar decay temporal exponencial com half-life de 24-36 meses no peso de processos encerrados, e considerar o desfecho (acordo cumprido reduz peso, sentença condenatória mantém). Processos em curso pesam 1.0 (peso integral). O Vigilant retorna o campo `situacao` que permite essa segmentação.

Score judicial funciona pra Pessoa Física e Pessoa Jurídica?

Sim, mas com calibração diferente. Pra PF, os 5 fatores (volume, severidade, recência, condenação, padrão) usam thresholds menores: 3+ processos já é sinal de risco. Pra PJ, especialmente empresas médias e grandes, ter dezenas de processos é normal — o que importa é a proporção em relação ao porte da empresa, o tipo (trabalhista é normal, criminal não), e a tendência (volume crescente é red flag). Recomendação: dois modelos separados, um pra PF e outro pra PJ, com features diferentes. O CNAE da empresa (consultado no [CNPJ lookup](/ferramentas/consulta-cnpj)) ajuda a normalizar — escritório de advocacia tem volume processual muito maior que padaria, naturalmente.

Como integrar score judicial no meu motor de decisão de crédito?

Três caminhos comuns, em ordem de complexidade: (1) **Webhook simples**: motor de decisão chama a API do Vigilant na aprovação de crédito, recebe o JSON com processos, calcula score na hora e usa como gate. Latência ~60s — adequado pra crédito não-instantâneo (análise B2B). (2) **Cache 24h**: score é calculado e armazenado no perfil do cliente, atualizado a cada 24h via job. Adequado pra crédito instantâneo (latência sub-segundo). (3) **Monitoramento contínuo**: cliente é cadastrado em [watchlist](/solucoes/monitoramento-distribuicoes), score é recalculado quando novos processos surgem. Adequado pra portfólios sob gestão (carteira de empréstimo, parcerias B2B). A escolha depende do SLA de latência da decisão e da volatilidade tolerada.

Como mitigar viés (homonímia, processos sem culpa) no score?

Três mitigações práticas: (1) **Identificação por CPF/CNPJ, nunca por nome**. Homônimos com nome igual tem CPF diferente — a desambiguação acontece naturalmente. (2) **Não pesar a polaridade do processo (autor vs réu) sem contexto**. Ser autor numa ação é normal (você está cobrando alguém); ser réu numa execução fiscal não é. O Vigilant retorna o campo `partes` com `tipo`, então o seu score deve considerar quando o titular figura como autor (peso menor) vs réu/executado (peso maior). (3) **Excluir tipos processuais não-relacionados a risco**. Inventários, alvarás, reconhecimento de paternidade não são sinais de risco de crédito — segmentar por `classe` e excluir essas categorias evita falso positivo. Esses três cuidados, sozinhos, removem ~80% do viés inicial.

Tenho que rodar o cálculo do score localmente ou usar uma API pronta?

Depende do seu volume e do controle que você quer. Rodar localmente: você consulta o Vigilant pra obter o histórico processual em JSON, e calcula o score na sua infraestrutura com seus pesos. Vantagem: total controle do modelo, possibilidade de calibrar com dados próprios, sem dependência de roadmap externo. Desvantagem: você mantém o código de cálculo. Usar uma API de scoring (Vigilant ainda não oferece esse endpoint pronto, está no roadmap pra 2026): vantagem é zero infra; desvantagem é caixa-preta. Pra fintechs sérias, recomendo SEMPRE rodar localmente — o score é um IP da empresa e deve ser auditável. Use a API do Vigilant só pra obter os dados crus.

Quer testar o Vigilant?

Pesquise processos em 12 fontes judiciais com uma única chamada de API.

5 créditos grátis

Consulte nestes tribunais

Cada página de tribunal mostra como consultar processos e os campos da API Vigilant aplicáveis.

Artigos relacionados

O que vem por aí

Estamos construindo o futuro do Vigilant

Veja o que já lançamos e o que vem a seguir — e diga o recurso que faria diferença pra você. Priorizamos ouvindo quem usa.

Justiça do Trabalho (TRTs)Busca por número (CNJ)Monitoramento por CNPJWebhook / integração