K1 Krat One Structure Atlas ENV · lab
Módulos/Analytics · Dados
Spec · analytics dos 3 níveis · 2026-07-12

Analytics · Dados nos 3 níveis

Um único motor de agregação por baixo, três lentes por cima: L1 vê a rede, L2 a carteira, L3 o próprio negócio. Mesma base de dados (contatos, deals, atividades, eventos, faturas, uso de AI) — cada nível filtra o que pode ver. Regra dura: L3 = só conversão + funil (sem Stripe/Square, sem invoice/quote/estimate).

1 motor · 3 lentesL3 = analytics-onlyalimentado por eventos + entidades
1

Um motor, três lentes

A mesma base alimenta os três níveis — o que muda é o escopo do filtro, não o cálculo.

L1Plataforma

Soma da rede toda (cross-workspace). Foco: rodar o SaaS — receita, escala, economia de AI.

Ver tela · L1 →

L2Agência

Soma dos clientes da carteira (um workspace). Foco: gerir e provar ROI — funil, pipeline, receita, SLA.

Ver tela · L2 →

L3Cliente

Um cliente, só leitura. Foco: ver o resultado — conversão + funil. Sem billing / quote / estimate.

Ver tela · L3 →

Princípio: L1 = Σ rede, L2 = Σ clientes do workspace, L3 = 1 cliente. Isolamento por RLS (workspace) + assertClientAccess (cliente). Nenhum número do L3 pode vazar receita da agência, custo de AI ou dado de outro cliente.
2

L1 — Plataforma rede

Rodar o negócio SaaS. Drill: rede → agência → (impersona) workspace.

MétricaFonteVisualização
Escala de redeaccount · workspace · client · contact · app_userKPIs + série de crescimento
Receita da plataforma (MRR/ARR)account.subscription (plano, status)KPI + tendência + mix de plano
Trials · churn · past_duesubscription.statusFaixa "needs attention" + funil de assinatura
Economia de AI (custo × margem/take)usage_event (tokens/custo/margem)KPI take-rate + por agência
Agências ativas (WAU/MAU)audit_log / event outbox (atividade)Linha de engajamento
Leads & deals ganhos na REDEcontact + deal (soma cross-workspace)KPIs agregados da rede
3

L2 — Agência carteira

Gerir a carteira e provar ROI. Drill: agência → cliente → lead/deal.

Captado MQL SQL Deal Won taxa de conversão entre cada etapa
MétricaFonteVisualização
Volume de leads + mix de canalcontact.source.channel + custom.channel/utmBarras por canal (Google Ads/Organic/Meta/GBP/LSA/Direct) + tendência
Funil de conversão + taxascontact.lifecycle_stage/lead_status + eventosFunil Captado→MQL→SQL→Deal→Won com % entre etapas
Pipeline (aberto · ponderado · win rate)deal.value_amount/stage.probability/statusValor aberto, ponderado, win rate, ticket médio, ciclo
Receita faturada (pago/aberto)client_invoice.total_micros/statusKPI receita + por cliente — só L2
SLA / tempo de 1ª respostacontact.first_response_due_at + activity(inbound/outbound)% dentro do SLA + tempo médio, por cliente/dono
Custo/margem de AI por clienteusage_event (client-scoped)P&L de AI por cliente
Rollup por cliente + tendênciastudo acima agregado por client_idTabela por cliente (drill) + séries temporais
4

L3 — Cliente analytics-only

Ver o resultado do trabalho da agência. Só conversão + funil.

MétricaFonteVisualização
Leads no tempocontact.created_at (do cliente)Linha de volume + comparativo período
Fonte / canal dos leadscontact.source.channel + custom.channelRosca/barras por canal
Funil (captado → qualificado → ganho)contact.lifecycle_stage + deal.statusFunil + taxas de conversão
Tempo de resposta aos leadsfirst_response_due_at + activityTempo médio + tendência
Top serviços / segmentoscontact.custom (service, budget, …)Ranking dos campos custom do nicho
Deals ganhos (contagem + valor)deal.status=won, value_amountKPI + valor do próprio pipeline (dado de conversão, não fatura)
Proibido no L3: integração Stripe/Square, invoice, quote, estimate, receita da agência, custo/margem de AI, qualquer dado cross-client. Ver Estrutura de Acessos. O valor de deal ganho aparece por ser dado de conversão do próprio cliente (não uma fatura) — configurável on/off por white-label.
5

Fundação de dados — a camada de agregação

Uma tabela de rollup diário por cliente serve os 3 níveis com uma soma. MVP começa on-read; rollup entra para escala + séries.

Tabela analytics_daily

Chave (workspace_id, client_id, day). Cada linha = um dia de um cliente. L3 lê suas linhas; L2 soma as do workspace; L1 soma tudo. Fluxos (o que aconteceu no dia) + snapshots (estado no dia).

Como é alimentada

MVP: agregação on-read direto das tabelas base (como o dashboard.summary já faz). Escala: job noturno no worker lê o event outbox + snapshots e grava analytics_daily — barato e com histórico.

Colunas de analytics_daily

ColunaTipoSignificado
leads_capturedintleads criados no dia
by_channel / by_sourcejsonb{canal: contagem} — mix de aquisição
promoted_mql / promoted_sqlinttransições de lifecycle no dia (fluxo)
converted_deal / unqualifiedintlead→deal e descartes no dia
deals_won / deals_lostintfechamentos no dia
won_value_cents / open_value_centsbigintvalor ganho (fluxo) e pipeline aberto (snapshot)
first_response_sum_sec / _countintpara o tempo médio de 1ª resposta
sla_met / sla_totalint% dentro do SLA
ai_cost_micros / ai_margin_microsbigintP&L de AI — L1/L2
invoiced_paid / invoiced_due_microsbigintreceita — só L2 (nunca exposto ao L3)

Fontes que alimentam (já existem no schema)

FonteO que fornece
event outboxcrm.lead.captured · crm.lead.converted · crm.deal.stage_changed — a espinha temporal das séries
contactlifecycle_stage · lead_status · score · source.channel · custom(channel/utm/budget) · first_response_due_at
dealvalue_amount · stage/probability · status(open/won/lost) · won_at/lost_at
activitytype · direction(inbound/outbound) · occurred_at — tempo de resposta e toques
client_invoicetotal_micros · status — receita da agência (L1/L2 apenas)
usage_eventcusto/margem de AI (AgentOps) — L1 rede, L2 por cliente
account / subscriptionplano · status — MRR/trial/churn (L1)
6

Ordem de build

Do que já dá pra montar hoje ao que precisa de rollup.

AL3 primeiro (on-read)

Funil + canal + volume + tempo de resposta de um cliente, direto das tabelas base. Entrega valor visível ao cliente já, sem infra nova.

BL2 (on-read + rollup por cliente)

Reusa o L3 por cliente + agrega a carteira: mix de canal, win rate, pipeline, SLA, receita, rollup por cliente.

CL1 + analytics_daily

Job de rollup noturno (séries + escala da rede) e as lentes de plataforma (MRR, AI take, engajamento).

Referências: Modelo de Dados · Estrutura de Acessos · Hierarquia (L1/L2/L3) · Protótipo Reports · Decisões CRM · Roadmap.