O Score de Priorização de Campanhas (SPC) é uma estrutura lógica open-source projetada para otimizar fluxos de trabalho operacionais em ambientes de marketing digital e produção de mídia. Seu objetivo principal é classificar algoritmicamente as campanhas ativas para garantir que os recursos sejam alocados onde geram o maior impacto: prevenindo a subutilização do orçamento ("dinheiro na mesa"), cumprindo prazos críticos e nutrindo relacionamentos estratégicos com clientes.
Este documento detalha o modelo matemático, o fluxo lógico e as diretrizes de implementação para o algoritmo. Destina-se a desenvolvedores, cientistas de dados e gerentes de operações que buscam implementar sistemas de priorização automatizados.
Em ambientes operacionais de alto volume, a priorização manual frequentemente leva a ineficiências, tais como:
- Viés de Recência: Focar apenas nas solicitações mais novas enquanto as antigas estagnam.
- Efeito "Quem Chora Mais Não Mama": Priorizar os clientes mais vocais em detrimento dos financeiramente mais críticos.
- Custo de Oportunidade: Negligenciar contas de alto potencial devido à fricção operacional em tarefas complexas e de menor valor.
O Algoritmo SPC resolve isso normalizando vários fatores de negócios urgência financeira, estratégia do cliente e complexidade operacional em um único valor escalar entre 0 e 100.
O score é construído usando uma abordagem em camadas. A base é a Urgência Financeira, que é então modulada por Bônus Estratégicos e Penalidades Operacionais.
graph TD
subgraph "Cálculo Base"
A[Saldo Restante & Prazo] -->|Calcular| B(Taxa de Urgência)
C[Tempo Ocioso] -->|Calcular| D(Fator de Estagnação)
E[Potencial do Cliente] -->|Calcular| F(Fator de Crescimento)
B & D & F --> G{Score Base}
end
subgraph "Ajustes Estratégicos"
H[Investimento Histórico Total] -->|Bônus| I[Bônus Estratégico]
J[Contagem de Campanhas Ativas] -->|Bônus| I
end
subgraph "Realidade Operacional"
L[Complexidade Operacional] -->|Penalidade %| M(Coeficiente de Fricção)
end
G --> K[Score Intermediário]
I --> K
K --> M --> N[SCORE DE PRIORIDADE FINAL]
O algoritmo avalia cinco dimensões distintas para calcular a prioridade final.
Peso: ~70% do Score Base
Este é o motor principal. Ele responde à pergunta: "Se não fizermos nada hoje, quanto do orçamento deixará de ser gasto?"
-
Conceito da Fórmula:
$\frac{\text{Saldo Restante}}{\text{Dias Restantes}}$ - Comportamento: À medida que o prazo se aproxima, se o orçamento não tiver sido consumido, a taxa de queima diária necessária dispara, aumentando exponencialmente o score.
Peso: ~15% do Score Base
Previne "campanhas zumbis". Mesmo tarefas de baixa urgência devem ser entregues eventualmente. Este fator aumenta o score linearmente com base no número de dias desde a última entrega realizada.
Peso: ~15% do Score Base
Um multiplicador qualitativo (1.0 - 1.5x) baseado no potencial do cliente para upsell ou expansão. Isso garante que "futuros gigantes" não sejam enterrados por "gigantes atuais".
Mecanismo: Pontos Aditivos
Clientes de alto valor recebem um aumento permanente de pontos em seu score, garantindo que mantenham visibilidade mesmo quando suas campanhas específicas não estão atualmente em um estado de "alerta vermelho".
- Métrica A: Investimento Histórico Total (LTV).
- Métrica B: Volume de Campanhas Ativas.
Mecanismo: Penalidade Multiplicativa (< 1.0)
Tarefas complexas com baixo retorno financeiro frequentemente entopem os pipelines de produção. O algoritmo aplica um "Coeficiente de Fricção" a tarefas difíceis.
- Lógica: Se uma campanha requer esforço desproporcional (ex: revisões excessivas, requisitos técnicos complexos) em relação ao seu valor, sua prioridade é amortecida para evitar que bloqueie o fluxo de tarefas de alta velocidade e alto retorno.
Restrição Rígida: Se
Status != Ativo, Score = 0.
Para entender o comportamento do algoritmo, analisamos sua saída em quatro cenários arquetípicos distintos.
Cenário: Um cliente pequeno com prazo apertado e orçamento não gasto.
- Urgência: Alta. A taxa de queima diária necessária é substancial.
- Bônus: Baixo (Cliente novo).
- Fricção: Baixa.
- Resultado: Prioridade Máxima. O algoritmo identifica que uma ação imediata é necessária para garantir a receita.
Cenário: Um cliente corporativo com orçamento massivo, mas prazo longo.
- Urgência: Moderada/Baixa. A taxa de queima diária é confortável.
- Bônus: Alto. Pontos aditivos significativos devido ao valor histórico.
- Fricção: Moderada.
- Resultado: Prioridade Média-Alta. A campanha raramente está no topo da lista (a menos que o prazo aperte), mas os bônus estratégicos a mantêm consistentemente visível, impedindo que caia para o fundo.
Cenário: Uma campanha padrão que é operacionalmente difícil/dolorosa.
- Urgência: Padrão.
- Bônus: Nenhum.
- Fricção: Alta (Penalidade Severa).
- Resultado: Prioridade Baixa. O algoritmo desprioriza esta tarefa para proteger o fluxo (throughput) da operação mais ampla. Ela só subirá na prioridade se a Urgência se tornar crítica o suficiente para superar a penalidade de fricção.
Cenário: Uma campanha padrão para um cliente identificado como oportunidade de alto crescimento.
- Urgência: Padrão.
- Potencial: Máximo.
- Resultado: Prioridade Elevada. O multiplicador de potencial eleva esta campanha acima de pares com orçamentos similares, garantindo que a operação nutra o relacionamento.
Parâmetros recomendados para implementar bônus estratégicos.
| Métrica | Recomendação Lógica | Sugestão de Teto |
|---|---|---|
| Bônus de Volume | Adicionar |
Teto de +15 pontos |
| Bônus de LTV | Adicionar |
Teto de +10 pontos |
Multiplicadores de penalidade recomendados com base na complexidade (escala 1-10).
| Nível de Complexidade | Multiplicador ( |
Efeito |
|---|---|---|
| Baixa (1-3) |
|
Impacto negligenciável. |
| Média (4-6) |
|
Amortecimento moderado (-30%). |
| Alta (7-10) | Amortecimento severo (-40%). |
Para implementar este algoritmo, você precisará de um conjunto de dados contendo:
- Dados de Orçamento: Orçamento total vs. Orçamento gasto.
- Dados de Tempo: Data de início, Data de fim, Data da última entrega.
- Dados do Cliente: Investimento histórico, Contagem de campanhas ativas.
- Dados Qualitativos: Pontuação de complexidade (manual ou calculada), Pontuação de potencial.
def calcular_score_prioridade(campanha):
if campanha.status != 'ATIVO':
return 0
# 1. Calcular Urgência (Base)
queima_diaria_necessaria = campanha.orcamento_restante / campanha.dias_restantes
score_base = normalizar(queima_diaria_necessaria, 0, 100)
# 2. Adicionar Estagnação & Potencial
fator_dias_ociosos = crescimento_log(campanha.dias_desde_ultimo_video)
multiplicador_potencial = 1 + (campanha.potencial_cliente / 100)
score_intermediario = (score_base + fator_dias_ociosos) * multiplicador_potencial
# 3. Adicionar Bônus Estratégicos
bonus_estrategico = (campanha.campanhas_ativas * 5) + (campanha.ltv / 10000)
score_intermediario += min(bonus_estrategico, 25) # Limitar bônus
# 4. Aplicar Penalidade de Fricção
coeficiente_friccao = obter_coeficiente_friccao(campanha.complexidade)
score_final = score_intermediario * coeficiente_friccao
return min(score_final, 100)