cassoli2016

scoring-cliente

Calcula um score de cliente combinando rentabilidade (margem), comportamento de pagamento (aging/inadimplência), concentração e tendência de volume. Use para priorização comercial, política de crédito e detecção de risco de churn. Dado sensível — local.

cassoli2016 0 Updated 3mo ago
GitHub

Install

npx skillscat add cassoli2016/cortex-sulista/scoring-cliente

Install via the SkillsCat registry.

SKILL.md

Skill: Scoring de Cliente

Score 0-100 que combina quatro eixos. Pesos em config/parametros.yaml (ajustáveis).

Eixos e pesos default

Eixo Peso Sinal
Rentabilidade (margem média) 0,35 maior = melhor
Pagamento (dias médios de atraso) 0,30 menor = melhor
Tendência de volume (3m vs 3m ant.) 0,20 crescente = melhor
Risco de concentração 0,15 menor dependência = melhor

Implementação

from decimal import Decimal as D

def score_cliente(margem_pct: D, atraso_medio_dias: D,
                  var_volume_pct: D, pct_da_receita: D,
                  pesos=None) -> dict:
    pesos = pesos or {"margem":0.35,"pagto":0.30,"volume":0.20,"conc":0.15}
    # normalizações simples 0..1 (clamp)
    f = lambda x: max(0.0, min(1.0, x))
    s_margem = f(float(margem_pct) / 0.25)                 # 25% margem = nota cheia
    s_pagto  = f(1 - float(atraso_medio_dias) / 30)        # 30 dias atraso = 0
    s_vol    = f(0.5 + float(var_volume_pct) / 0.4 / 2)    # +/-40% mapeia 0..1
    s_conc   = f(1 - float(pct_da_receita) / 0.30)         # >30% da receita = risco
    score = 100 * (pesos["margem"]*s_margem + pesos["pagto"]*s_pagto +
                   pesos["volume"]*s_vol + pesos["conc"]*s_conc)

    faixa = ("A" if score>=75 else "B" if score>=55 else "C" if score>=40 else "D")
    flags = []
    if s_pagto < 0.5: flags.append("risco de inadimplencia")
    if s_vol  < 0.4: flags.append("volume em queda - risco de churn")
    if s_conc < 0.4: flags.append("alta concentracao - dependencia perigosa")
    return {"score": round(score,1), "faixa": faixa, "flags": flags}

Cliente D ou com flag de churn entra na lista de ação comercial. Cliente A com alta
concentração é risco estratégico (proteger relacionamento + diversificar carteira).

Fontes

com_clientes, vw_rkm_cliente, fin_titulos (aging), op_viagens (volume).

Categories