MRR e ARR normalizados
Semanal, mensal, trimestral, semestral e anual comparados depois de normalizar. Trocar 99/mês por 1.800/ano é expansão de 51, não de 1.701.
O DuckLedger junta receita, custo e comportamento na mesma conta. MRR, coortes e churn de 7 gateways e das lojas; nuvem, IA, WhatsApp e hospedagem com dono; telas, fricção e campanhas de cada pessoa. E a resposta que só existe quando tudo fecha: margem por produto, por cliente, por usuário e por campanha.
Multi-produto · RBAC · Segredos criptografados · Sem arqueologia de planilha
Exemplo · mês corrente
MRR
R$ 248,4k
Margem bruta
63,3%
Custo / usuário
R$ 3,12
LTV:CAC
4,1×
Métricas de receita completas
MRR, ARR, cascata, NRR, GRR, coortes e funil de conversão.
Custo com dono
Nuvem, IA e despesas rateadas até o produto que as gerou.
Margem por usuário
Receita menos custo direto, no nível da pessoa e da sessão.
Comportamento com receita
Telas, fricção, retenção e campanhas ligadas ao que cada pessoa paga.
Três vídeos curtos: o caminho do dinheiro até a margem por pessoa, o que o comportamento no produto revela sobre retenção e campanhas, e como a fatura de nuvem vira custo por requisição.
Asaas, Stripe, Pagar.me, Mercado Pago e as lojas entram num ledger só — Pix, cartão e in-app, com taxa e estorno separados do bruto.
Uma ferramenta de receita sabe quanto entrou. Uma ferramenta de FinOps sabe quanto saiu. Algumas já juntam custo de nuvem com billing por uso — mas não Asaas, Pix, lojas e IA no mesmo P&L de um fundador brasileiro. Estas são as perguntas do DuckLedger.
Ferramentas de receita param na etapa 3. FinOps de nuvem começa na 4; stacks grandes já importam receita de usage-billing, mas não cobrem Asaas, Pix nem o recorte de fundador brasileiro. A pergunta “este cliente dá lucro?” mora na junta — receita e custo do mesmo produto, no mesmo período, na mesma moeda.
Cobrança
Assinatura
Analytics
Custo
Rateio
Lucro
MRR, churn, coorte
custo de nuvem por tag
atravessa a junta
A gateway move o dinheiro na etapa 1. O DuckLedger explica as cinco seguintes.
Não é um painel de MRR bonito por cima de um CSV. É um ledger de movimentos, snapshots diários e desfechos gravados quando acontecem — porque uma assinatura cancelada não lembra mais quanto valia.
Semanal, mensal, trimestral, semestral e anual comparados depois de normalizar. Trocar 99/mês por 1.800/ano é expansão de 51, não de 1.701.
Novo, expansão, reativação, contração e churn — com churn voluntário separado do involuntário pelo status de onde a assinatura saiu.
Retenção por coorte, ARPU, tempo de vida e NRR/GRR ancorados no snapshot que abriu o mês.
Desfecho escrito uma vez e nunca recalculado. Taxa sobre resolvidos, com a população em aberto sempre visível ao lado.
RevenueCat resolve Apple, Google e web de uma vez; App Store e Play também conectam direto. Comissão e estorno separados do bruto.
Asaas, Stripe, Pagar.me, Paddle, Iugu, Mercado Pago e AbacatePay: Pix, boleto, cartão e assinaturas, com webhook idempotente e sincronização de várias gateways ao mesmo tempo.
Atributos de cliente, segmentos salvos e previsão de receita a partir dos movimentos observados.
Cada pagamento resolvido até o produto que o gerou — e não “em algum lugar da gateway”.
Custo sem produto não vira margem. O DuckLedger importa o gasto onde ele nasce, atribui ao workspace e obriga uma pergunta que a contabilidade não faz: isto serve o cliente, compra o cliente, ou nenhum dos dois?
Gasto por serviço sincronizado sozinho e rateado por requisição de produção. Você escolhe quais serviços contam.
Vercel exato por serviço e projeto; Supabase e Hostinger estimados pelo plano e marcados como estimados. Alerta de renovação mais cara.
O custo de cada mensagem pela tabela da Meta do dia, por categoria e país — e ligado à pessoa que recebeu.
OpenAI, Anthropic, OpenRouter, Gemini e mais, com sync diário e atribuição por projeto, chave e workspace.
Manuais, recorrentes e importadas por CSV, com fornecedor, categoria e data de competência.
Custo de receita, aquisição ou overhead. Toda categoria nasce overhead, para que nada infle margem ou CAC no silêncio.
Custo compartilhado fica na organização; o P&L de cada workspace continua limpo e comparável.
Motor de fórmula auditável: custo total sobre usuários ativos, operações ou requisições — a métrica que você define.
Seis regras determinísticas apontam onde cortar: assinatura ociosa, modelo caro para a tarefa, serviço sem uso. Cada sugestão com o valor em jogo.
O custo que o SDK mediu é comparado com a fatura do provedor. A diferença aparece; os dois nunca são somados.
Um LTV de receita diz quanto o cliente vai pagar. Só o LTV sobre margem diz quanto disso você fica — e é a única versão comparável com o que custou trazê-lo. Quatro números que nenhuma ferramenta só de receita consegue produzir.
margem bruta = (receita − custo de receita) / receita CAC = investimento de aquisição / novos clientes LTV (margem) = ARPU × meses de vida × margem bruta LTV:CAC = LTV (margem) / CAC payback = CAC / (ARPU × margem bruta)
Um mês que não trouxe ninguém não tem CAC zero: não tem CAC. Uma margem negativa não tem payback. O número volta nulo em vez de mentir.

Todo mundo mostra retenção de receita por coorte. Aqui a coorte acumula lucro bruto até cobrir o que custou adquiri-la — e o mês em que isso acontece tem nome.
Perder um cliente de margem alta e um de margem negativa não é o mesmo evento. Um deles melhora a empresa.
A taxa de margem sai do P&L; a receita recorrente vive na sua própria base. Levar a taxa para o MRR é prática padrão — somar caixa com MRR é o erro que essa separação existe para impedir.
Custo médio por usuário ativo é uma divisão, não uma medição. Instrumente o que o produto realmente faz — e cada chamada de modelo, job e conversa passa a ter dono, sessão, moeda e valor.
Uma chave de ingestão e um pacote. Lote, retentativa e idempotência por ID de evento.
O uso já existe nas suas tabelas: uma view somente leitura e uma consulta agendada.
Eventos já padronizados entram direto, com host, projeto e chave pessoal.
await usage.withTrace(
{
kind: 'conversation',
name: 'Support chat',
subject: user.id,
},
async (trace) => {
trace.step('retrieveContext');
usage.track({
type: 'ai.tokens_spent',
data: {
model: 'gpt-4o',
prompt_tokens: 1200,
completion_tokens: 400,
},
});
},
);Tokens sem custo informado são precificados pela tabela pública e marcados como estimados. Passe o custo medido e ele substitui a estimativa.

Conversa, checkout ou job: cada passo, provedor e hop entre serviços em uma linha só, com duração e custo.
O que o provedor cobrou e o que a tabela de preços calculou aparecem com rótulos diferentes na mesma tela.
Um trace que gastou USD no modelo e BRL na gateway custou duas coisas. Escolher uma taxa de câmbio para fundir as duas é decisão sua, não da célula.
O ID interno do seu app vira identidade; o e-mail liga a pessoa ao cliente sozinho, e uma conta pode pagar por vários usuários sem multiplicar a receita.
Painel ao vivo com as pessoas ativas, de onde e em quê — com custo e receita em tempo real e previsão do mês.
Ferramentas de analytics mostram cliques. O DuckLedger liga cada tela, funil e campanha à receita e ao custo de quem passou por ela. A pergunta deixa de ser “quantos usaram” e vira “quem usou isso fica e dá lucro?”.
Pessoas, visualizações, sessões, tempo mediano, conversão e retorno D7/D30 por tela — com ids colapsados em /pedidos/:id.
Erros, ações que falharam, cliques repetidos, cliques sem resposta, formulários abandonados e conclusões lentas, em um índice que sempre se explica.
Telas, ações e funcionalidades em sequência. A etapa com a maior queda fica destacada.
D1, D7 e D30 sobre quem já teve tempo de voltar, coortes semanais e aderência DAU/MAU.
Sessões, dias ativos e tela principal ao lado de receita, custo e contribuição de cada pessoa.
UTM de primeiro e último toque até o pagamento: visitantes, cadastros, ativados, pagantes, CAC, ROAS e resultado.
Quem usou cada tela ou função nos primeiros dias, contra quem não usou: retenção, pagantes e contribuição.
Conecte o PostHog e cada tela ganha o link para o mapa de calor e as gravações, sem duplicar ferramenta.
O tracker manda para uma rota do seu app, que anexa o usuário logado. Uma página não consegue se passar por outra pessoa.
Caminhos sem query string, ids viram :id, elementos nomeados sem o texto deles e nenhum conteúdo de formulário lido.
A origem fica no dispositivo: quem chegou por um anúncio e se cadastrou dias depois continua atribuído àquele anúncio.
Um assistente que lê o seu ledger — receita, custo, uso e comportamento — e responde em relatório, com tabela e gráfico. Ele também configura: cria e valida chaves e explica qual SDK usar.
Por que a margem do NutriOS caiu em setembro?
✦ Duck CFO
O custo de IA por usuário subiu 38% depois da troca para um modelo maior na conversa de suporte, enquanto a receita ficou estável. Voltar o modelo antigo nas conversas curtas devolveria cerca de R$ 2,1 mil por mês.
Isto não é modéstia: é o que separa um painel de decisão de um painel decorativo. Quando falta base, o DuckLedger diz que falta.
Gastar R$ 3 mil e não adquirir ninguém não é aquisição gratuita. Sem base, a resposta é nula — e a tela explica o que falta conectar.
Custo calculado por tabela de preços nunca se veste de custo medido. O mesmo vale para nomes de trace inferidos pela rota.
Sandbox e produção são arquivados pelo ambiente que o evento carrega, não pelo da conexão.
Webhooks idempotentes, aliases de loja resolvidos para um cliente só, e custo instrumentado conciliado com a fatura em vez de somado a ela.
Comparação por categoria, não por marca. FinOps grande já junta nuvem com receita de usage-billing; o DuckLedger junta Asaas, lojas, nuvem, IA e despesas no mesmo P&L, em reais.
MRR, churn, coortes
Assinaturas Apple e Google
Pix, boleto e cobrança BR
Custo de nuvem por produto
Custo de APIs de IA
Margem e lucro por produto
LTV sobre lucro bruto
Custo e receita por usuário
Custo de WhatsApp e hospedagem por pessoa
Telas e fricção ligadas à receita
CAC e ROAS por campanha, sobre margem
Resposta no mesmo dia
Sem implantação de seis semanas. Você liga a estrutura uma vez e os números passam a compor sozinhos.
Uma organização, um workspace por produto. Custo compartilhado fica na org; o P&L de cada produto nasce comparável.
Asaas para Pix, boleto e cartão; RevenueCat ou as lojas para in-app purchase. Backfill uma vez e webhook para o resto.
AWS, provedores de IA, WhatsApp, Vercel, Supabase, Hostinger e despesas. Classifique cada categoria como custo de receita, aquisição ou overhead.
SDK no servidor e tracker no navegador. A partir daí “quanto este usuário custa, gera, onde trava e de onde veio” tem resposta com nome e sessão.
Uma assinatura por empresa, cobrada pelo número de clientes que você acompanha. Sem cobrança por assento, sem taxa sobre a sua receita.
Para validar antes de pagar.
Grátis
Para quem já tem receita entrando.
R$ 99,90/mês
Para operações com vários produtos.
R$ 299,90/mês
Nos planos pagos o cartão entra agora e a primeira cobrança é depois de 14 dias. Cancelar antes não gera cobrança.
Chegou no limite? Nada é apagado — só o cadastro de novos clientes pausa até você trocar de plano.
Conectar, classificar custo, ratear por produto e ler o número todo mês é trabalho — e é onde a maioria desiste. No serviço gerenciado isso é meu, não seu: você recebe o fechamento pronto e a decisão que ele sugere.
Um produto, a margem fechada todo mês.
R$ 2.500/mês
Para quem tem R$ 20 mil a R$ 100 mil de MRR
6 meses de contrato mínimo
Vários produtos, cada um com o seu P&L.
R$ 4.900/mês
Para quem tem R$ 100 mil a R$ 400 mil de MRR
6 meses de contrato mínimo
A implementação está dentro da mensalidade, não é cobrada à parte. Acima de R$ 400 mil de MRR, ou com necessidade fora do escopo acima, o desenho é sob consulta.

Chave de ingestão vive no seu servidor e tem escopo estreito de propósito: enviar evento, ler catálogo de medidor e registrar tipo faltante. Nada além disso.
Se você opera produtos digitais e a resposta sobre receita mora em uma ferramenta, o custo em outra e a margem em nenhuma — é essa junta que o DuckLedger fecha.
Já é do time? Entre e continue de onde parou.