O ROI nao deve ser calculado por mensagem, e sim por jornada. Uma jornada e um problema do cliente do inicio ao fim. O ganho de uma automacao e o custo humano que ela realmente evitou: o volume de jornadas multiplicado pela taxa de contencao (quantas o bot resolveu de fato) multiplicado pelo custo que cada atendimento humano teria. Desse ganho bruto voce subtrai o custo total da automacao (recorrente mais build amortizado) para chegar ao ganho liquido. O ROI e o ganho liquido sobre o custo total. A funcao abaixo formaliza isso e ja calcula tambem o payback. Os inputs sao ilustrativos: troque pelos seus.
// ROI por jornada e payback (estrutura, nao valores de mercado).
// Todos os numeros abaixo sao EXEMPLOS ilustrativos.
// Preencha com os dados reais da sua operacao.
const exemplo = {
jornadasMes: 10000, // jornadas (problemas) que chegam por mes
taxaContencao: 0.45, // fracao RESOLVIDA pelo bot (sem handoff, sem reabertura)
custoHumanoPorJornada: 4.0, // custo evitado por jornada contida (sua moeda)
// Custo TOTAL da automacao
custoRecorrenteMes: 6000, // tokens + infra + manutencao + curadoria + escalonamento
custoBuild: 48000, // engenharia inicial (sera amortizada)
mesesAmortizacao: 12, // horizonte para diluir o build
};
function roiAutomacao(i) {
// Ganho bruto = volume x contencao real x custo humano evitado
const jornadasContidas = i.jornadasMes * i.taxaContencao;
const ganhoBrutoMes = jornadasContidas * i.custoHumanoPorJornada;
// Custo total mensal = recorrente + parcela do build amortizado
const buildMensal = i.custoBuild / i.mesesAmortizacao;
const custoTotalMes = i.custoRecorrenteMes + buildMensal;
// Ganho liquido e ROI
const ganhoLiquidoMes = ganhoBrutoMes - custoTotalMes;
const roiMensal = ganhoLiquidoMes / custoTotalMes; // ex.: 0.2 = 20%
// Payback: meses para o ganho acumulado cobrir o build.
// Usa o ganho liquido ANTES de amortizar (recorrente puro contra o caixa).
const ganhoLiquidoSemBuild = ganhoBrutoMes - i.custoRecorrenteMes;
const paybackMeses =
ganhoLiquidoSemBuild > 0 ? i.custoBuild / ganhoLiquidoSemBuild : Infinity;
return { ganhoBrutoMes, custoTotalMes, ganhoLiquidoMes, roiMensal, paybackMeses };
}
// Leitura: se taxaContencao cai pela metade, o ganho bruto cai pela metade,
// mas o custo total quase nao muda => o ROI desaba. A contencao real e a
// alavanca dominante, nao o preco do token.
console.log(roiAutomacao(exemplo));
Volume de jornadas/mes
|
x taxa de CONTENCAO real
v
Jornadas contidas
|
x custo humano evitado por jornada
v
GANHO BRUTO --(- custo total: recorrente + build amortizado)--> GANHO LIQUIDO
|
ganho liquido / custo total
v
ROIRepare na sensibilidade: o ganho bruto e linear na taxa de contencao, enquanto o custo total e quase inelastico no curto prazo. Isso significa que o ROI depende muito mais de quanto o bot realmente resolve do que de qualquer otimizacao de preco por token. Por isso a proxima secao trata de medir contencao de verdade.