Lucratividade

Cards de resumo de lucratividade

GET
/v1/profitability/cards

Retorna os indicadores consolidados de lucratividade da organização no período: faturamento, investimento em mídia, pedidos, clientes, CAC, CPV, LTV, ROI, payback, conversão e os indicadores por estratégia de campanha (aquisição, marca e monetização).

  • Use para KPIs de resumo e para comparar com o período anterior: com startDate e endDate, a resposta traz previousPeriod e changes (variação em %). Sem datas, considera todo o histórico e esses dois campos vêm null.
  • Valores derivados de receita (contribution, ltv, roi, clv etc.) são multiplicados pela margem de contribuição. Sem margem configurada, marginPercent é 100 e marginConfigured é false, ou seja, os valores são brutos.
  • null significa "não calculável" e é diferente de 0.

Autorização

ClientIdAuthClientSecretAuth
headerx-client-id<token>

Client ID

headerx-client-secret<token>

Client secret

Parâmetros de query

organizationId*string

Identificador da organização (obrigatório)

startDate?string

Primeiro dia do período, inclusivo (YYYY-MM-DD). Só é aplicado junto com endDate; sem os dois, a API considera todo o histórico.

Formatodate
endDate?string

Último dia do período, inclusivo (YYYY-MM-DD). Só é aplicado junto com startDate; sem os dois, a API considera todo o histórico.

Formatodate

Corpo da resposta

Cards de resumo de rentabilidade obtidos com sucesso

application/json
  1. response

Indicadores consolidados de lucratividade da organização no período.

revenue*number

Receita bruta total no período

investment*number

Investimento total em mídia paga (Meta Ads e Google Ads) no período.

orders*number

Número total de pedidos no período

customers*number

Total de clientes (novos + recorrentes) no período

newCustomers*number

Clientes cuja primeira compra aconteceu no período.

recurringCustomers*number

Clientes que compraram no período e cuja primeira compra foi antes do início dele.

recurringOrders?integer

Pedidos de recompra no período: pedidos de clientes que já tinham comprado antes daquele pedido (inclui a segunda compra de quem entrou no próprio período). É o divisor do cpr (investment ÷ recurringOrders). Não é a mesma população de recurringCustomers; não divida um pelo outro.

averageTicket*number

Ticket médio: revenue ÷ orders. 0 quando não há pedidos.

contribution*number

Margem de contribuição em valor: revenue × marginPercent / 100. Sem margem configurada, é igual a revenue.

contributionProfit*number

Lucro de contribuição (contribution − investment)

cpv*number

Custo por venda: investment ÷ orders. Não depende da margem. 0 quando não há pedidos.

cpr*number

Custo por recompra: investment ÷ recurringOrders, ou seja, quanto foi investido em mídia, em média, para cada pedido de recompra. Usa o investimento total, por isso é sempre maior ou igual ao cpv. Não depende da margem. 0 quando não há pedidos de recompra.

cac*number

CAC médio: investimento total em mídia ÷ clientes novos. Inclui o investimento em marca e monetização, porque essas campanhas também trazem clientes. Para o CAC restrito a campanhas de aquisição, veja campaignCac e acquisitionCac. Não depende da margem. 0 quando não há clientes novos.

campaignCac*number

CAC considerando só o investimento em campanhas classificadas como aquisição (campanhas sem classificação ficam de fora), dividido por todos os clientes novos. 0 quando nenhuma campanha está classificada ou não há clientes novos; use hasAcquisitionClassification para distinguir os dois casos.

acquisitionInvestment*number

Investimento em campanhas classificadas como aquisição. É o numerador de campaignCac e de acquisitionCac.

acquisitionNewCustomers*|

Clientes novos cuja primeira compra foi atribuída (por UTM) a uma campanha de aquisição. Diferente de newCustomers, que conta todos os clientes novos, inclusive orgânicos. Sem datas, considera todo o histórico.

acquisitionCac*|

CAC das campanhas de aquisição: acquisitionInvestment ÷ acquisitionNewCustomers, com os dois lados restritos a essas campanhas. Não depende da margem. null quando não há investimento em aquisição ou quando essas campanhas não trouxeram nenhum cliente atribuído.

acquisitionLtvCacRatio*|

LTV/CAC das campanhas de aquisição: acquisitionLtv ÷ acquisitionCac. Diferente de ltvCacRatio, que considera todos os clientes e todo o investimento. null quando um dos lados não pode ser calculado.

acquisitionRoi*|

ROI das campanhas de aquisição, como razão: (acquisitionContribution − investimento de aquisição) ÷ investimento de aquisição. Costuma ser bem menor que roi, que inclui vendas orgânicas e não atribuídas no numerador. null quando não há investimento em aquisição ou quando essas campanhas não trouxeram nenhum cliente atribuído (a receita não foi observada, então não é 0).

acquisitionContribution*|

Margem gerada pelos clientes trazidos pelas campanhas de aquisição: receita desses clientes × marginPercent / 100. null nos mesmos casos que acquisitionRoi.

acquisitionLtv*|

LTV médio, com margem, dos clientes trazidos pelas campanhas de aquisição: receita total desses clientes ao longo da vida × margem ÷ acquisitionNewCustomers. null nos mesmos casos que acquisitionRoi.

monetizationInvestment*number

Investimento em campanhas classificadas como monetização (venda para clientes da base). É o denominador de monetizationRoi e monetizationCpr.

unclassifiedInvestment*number

Investimento em campanhas que não estão classificadas como aquisição, marca ou monetização. Somado a acquisitionInvestment, brandInvestment e monetizationInvestment, dá o investimento total das campanhas sem dupla contagem. Esse total pode diferir ligeiramente de investment por diferença de atualização dos dados e porque ajustes de gasto zerados ou negativos entram aqui, mas não em investment.

brandInvestment*number

Investimento em campanhas classificadas como marca (reconhecimento de marca).

brandImpressions*number

Total de impressões das campanhas classificadas como marca, somando Meta Ads e Google Ads. Para o CPM de marca, calcule brandInvestment ÷ brandImpressions × 1000.

brandNewCustomers*|

Clientes novos cuja primeira compra foi atribuída (por UTM) a uma campanha de marca. Sem datas, considera todo o histórico. Por ser uma contagem, 0 é um valor real.

brandContribution*|

Margem gerada pelos clientes trazidos pelas campanhas de marca: receita desses clientes × marginPercent / 100. null quando não há investimento em marca ou quando essas campanhas não trouxeram nenhum cliente atribuído.

brandRoi*|

ROI das campanhas de marca, como razão: (brandContribution − investimento em marca) ÷ investimento em marca. O investimento usado vem da mesma base de atribuição de brandContribution e pode diferir ligeiramente de brandInvestment. null nos mesmos casos que brandContribution.

retentionLtv*number

Parte do LTV gerada pelas recompras: média, por cliente, da receita dos meses posteriores ao mês da primeira compra × marginPercent / 100. Considera os clientes adquiridos até o fim do período (ou toda a base, sem datas). Uma segunda compra no mesmo mês da primeira conta como entrada, não como recompra. 0 quando não há clientes.

monetizationContribution*|

Margem dos pedidos atribuídos (pela UTM do próprio pedido) a campanhas de monetização: receita desses pedidos × marginPercent / 100. Sem datas, considera todo o histórico. null quando a atribuição de pedidos não está disponível para a organização.

monetizationRoi*|

ROI das campanhas de monetização, como razão: (monetizationContribution − monetizationInvestment) ÷ monetizationInvestment. null quando não há investimento em monetização ou quando a atribuição de pedidos não está disponível.

monetizationRecurringCustomers*|

Clientes recorrentes distintos com ao menos um pedido no período atribuído (pela UTM do pedido) a uma campanha de monetização. É um subconjunto de recurringCustomers. 0 é um valor medido; null quando a atribuição de pedidos não está disponível.

monetizationCpr*|

Custo por recompra das campanhas de monetização: monetizationInvestment ÷ pedidos de recompra atribuídos a essas campanhas. Não depende da margem. null (e não 0) quando não há recompra atribuída, quando não há investimento em monetização ou quando a atribuição de pedidos não está disponível.

ltv*number

LTV dos clientes adquiridos no período: média da receita total de cada cliente ao longo da vida × marginPercent / 100.

ltvLifetime*number

LTV médio de toda a base de clientes da organização, sem filtro de período, × marginPercent / 100. Compare com ltv: se o LTV do período não cobre o CAC, mas o da base cobre, a questão é o tempo de payback, não o CAC.

ltvCacRatio*number

Quantas vezes o LTV paga o CAC: ltv ÷ cac. 0 quando cac é 0.

roi*number

Retorno sobre o investimento em mídia, como razão: (contribution − investment) ÷ investment (ex.: 1.19 = 119%). 0 quando não há investimento.

clv*number

Lucro vitalício do cliente (ltv − cac): valor líquido por cliente após o custo de aquisição. Usa o ltv do período (considerando a margem); o CAC é independente da margem. Pode ser negativo quando o CAC excede o LTV do período.

conversionRate*|

Taxa de conversão da etapa Interesse para a etapa Decisão do funil configurado na plataforma, em % (0–100): Decisão ÷ Interesse × 100, no mesmo período. Não depende da margem. null quando a organização não tem a etapa Interesse configurada.

payback*number

Payback em meses: tempo até a margem acumulada de uma safra de clientes cobrir o custo de aquisição dela, em média ponderada pelo número de clientes das safras que já se pagaram. 0 quando nenhuma safra se pagou no período.

marginPercent*number

Percentual de margem de contribuição aplicado. 100 quando nenhuma margem está configurada (marginConfigured=false)

marginConfigured*boolean

Indica se uma margem de contribuição personalizada foi configurada para esta organização

marginCompleteness?MarginCompleteness

Completude da margem configurada item a item (gateway, imposto, frete e CMV): complete = todos os itens resolvidos; partial = algum item pendente, então a margem é parcial; none = não há composição por item (margem nunca configurada ou configurada como percentual único; diferencie pelos valores de marginConfigured).

Valor em"complete""partial""none"
marginItemStatus?|

Status por item da composição da margem (synced = vindo dos pedidos, configured = informado pelo usuário, pending = não configurado ou com dados ausentes). null quando a organização não tem composição.

hasAcquisitionClassification*boolean

Indica se a organização já classificou alguma campanha como aquisição, em qualquer período. Use para diferenciar "nunca classificou campanhas" de "classificou, mas não há dados neste período".

previousPeriod*|

Os mesmos indicadores calculados para o período imediatamente anterior, com o mesmo número de dias (ex.: para 01/03–31/03, o anterior é 29/01–28/02). Exceções: ltv e retentionLtv trazem a base de clientes adquirida até o início do período selecionado, e margin é a margem configurada (não depende do período). null quando a requisição não tem startDate e endDate.

changes*|

Variação percentual de cada indicador: (atual − anterior) ÷ anterior × 100, comparando com previousPeriod. Para ltv e retentionLtv, compara a base adquirida até o fim com a base adquirida até o início do período. margin é sempre 0. Cada campo é null quando o valor anterior é 0 ou null; o objeto inteiro é null sem startDate e endDate.

cogs?|

Custo real das mercadorias vendidas (CMV), somado apenas nos pedidos que têm custo informado pela plataforma de e-commerce. null (e não 0) quando os dados de custo não estão disponíveis.

revenueWithCmv?|

Receita dos pedidos que têm CMV real (valor em moeda, não percentual).

revenueWithoutCmv?|

Receita dos pedidos sem CMV real (valor em moeda). Somada a revenueWithCmv, resulta na receita total.

marginBasis?|

De onde veio a margem: cmv_real (todos os pedidos têm CMV real), mixed (só parte tem), configured_percent (nenhum tem, mas há margem configurada) ou no_basis (nem CMV real, nem margem configurada). null quando os dados de custo não puderam ser lidos, o que é diferente de no_basis.

Valor em"cmv_real""mixed""configured_percent""no_basis"
blendedContribution?|

Margem de contribuição usando o CMV real onde existe e a margem configurada no restante: (revenueWithCmv − cogs) + revenueWithoutCmv × marginPercent / 100. Se a margem foi configurada item a item e está completa (marginCompleteness = complete), cada parte desconta seus próprios custos (gateway, imposto, frete e CMV). null (nunca uma soma parcial) quando parte da receita não tem nenhuma base de margem. Não altera contribution, que continua sendo revenue × marginPercent / 100.

curl -X GET "https://example.com/v1/profitability/cards?organizationId=c0ad4763-173e-4a05-9cff-5208c8ea5f6a&startDate=2025-01-01&endDate=2025-12-31"
{  "revenue": 500000,  "investment": 80000,  "orders": 1200,  "customers": 950,  "newCustomers": 620,  "recurringCustomers": 330,  "averageTicket": 416.67,  "contribution": 175000,  "contributionProfit": 95000,  "cpv": 66.67,  "cpr": 3.59,  "cac": 129.03,  "campaignCac": 118.4,  "acquisitionInvestment": 13723.78,  "monetizationInvestment": 627.91,  "unclassifiedInvestment": 1310.2,  "brandInvestment": 2450.5,  "brandImpressions": 184320,  "acquisitionContribution": 12900.4,  "acquisitionLtv": 212.6,  "brandNewCustomers": 41,  "brandContribution": 3120.75,  "brandRoi": 0.27,  "retentionLtv": 318.4,  "ltv": 700,  "ltvLifetime": 1020,  "ltvCacRatio": 5.43,  "roi": 1.19,  "clv": 570.97,  "conversionRate": 5.24,  "payback": 6.5,  "marginPercent": 35,  "marginConfigured": true,  "marginCompleteness": "none",  "marginItemStatus": null,  "hasAcquisitionClassification": true,  "previousPeriod": {    "investment": 72000,    "contribution": 161500,    "roi": 1.02,    "clv": 512.4,    "conversionRate": 5.36,    "cac": 132.5,    "cpv": 64.1,    "ltv": 980,    "payback": 7.1,    "margin": 35  },  "changes": {    "investment": 11.11,    "contribution": 8.36,    "roi": 16.67,    "clv": 11.43,    "conversionRate": -2.24,    "cac": -2.62,    "cpv": 4.01,    "ltv": 4.08,    "payback": -8.45,    "margin": 0  }}