Ir para conteúdo
  • 0

Clientes Ativos (compraram no prazo 90 dias) e Perdidos (deixaram de comprar no prazo de 90 dias) (e dinâmico)


Adriana Dias
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Bom dia Pessoal, preciso calcular os clientes ativos e perdidos no prazo de 90 dias. Eu tentei fazendo uma a tabela no power query para encontrar os ativos 90 dias e com isso calcular os perdidos(clientes que não compraram em 90 dias). Quero colocar estas informações, em cartão e gráfico. Dentro do modelo anexo está bem o que preciso fazer. 

Sabendo os clientes que pararam de comprar (perdidos) já tenho a fórmula de Churn no modelo. 

Se puder me ajudar, agradeço!

Não consigo anexar arquivo aqui é maior que 48mb. Vou colar algumas telas para visualizar.

Clientes Ativos = CALCULATE(DISTINCTCOUNT(fat_venda[id_cliente]),

Dim_Churn[Status_Churn]= "ativo")

 

Clientes Perdidos* = CALCULATE(DISTINCTCOUNT(fat_venda[id_cliente]),

Dim_Churn[Status_Churn]= "inativo", DATESINPERIOD(Calendario[Date],MAX(Calendario[Date]), -90, DAY), USERELATIONSHIP(Dim_Churn[data_venda],Calendario[Date]))

O resultado dessas medidas está confuso, não se se esta seria a melhor prática de construir uma tabela, ou melhor fazer tudo no Dax (preciso de ajuda).

 

Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Veja se é isso
 

Clientes ativos v1 = 
    VAR vDias = 90
    VAR vDataIni = 
        MIN(Calendario[Date])
    VAR vData = 
        MAX(Calendario[Date])
    VAR vClientesAntes = 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vDataIni,
                vData - vDias - 1
            )
        )
    VAR vClientesRecente = 
            CALCULATETABLE( 
                VALUES(fat_venda[id_cliente]),
                DATESINPERIOD(
                    Calendario[Date],
                    vData,
                    -vDias,
                DAY
                )
            )
RETURN
    COALESCE(
        COUNTROWS(
            INTERSECT(
                vClientesAntes, 
                vClientesRecente
            )
        ),
        0
    )

 

Clientes perdidos v1 = 
    VAR vDias = 90
    VAR vDataIni = 
        MIN(Calendario[Date])
    VAR vData = 
        MAX(Calendario[Date])
    VAR vClientesAntes = 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vDataIni,
                vData - vDias - 1
            )
        )
    VAR vClientesRecente = 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESINPERIOD(
                Calendario[Date],
                vData,
                -vDias,
            DAY
            )
        )
RETURN
    COALESCE(
        COUNTROWS(
            EXCEPT(
                vClientesAntes, 
                vClientesRecente
            )
        ),
        0
    )

 

774357259_ClienteAtivoePerdido.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

Considerei clientes perdidos aqueles que não compraram nos últimos 90 dias em relação à última data do contexto, mas comprara nos 90 dias anteriores a este período inicial de 90 dias.

Clientes perdidos v1 = 
    VAR vDias = 90
    VAR vData = 
        MAX(Calendario[Date])
    VAR vDataIni = 
        vData - vDias * 2
    VAR vClientesAntes = 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vDataIni,
                vData - vDias - 1
            )
        )
    VAR vClientesRecente = 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESINPERIOD(
                Calendario[Date],
                vData, 
                -vDias,
                DAY
            )
        )
RETURN
    COUNTROWS(
        EXCEPT(
            vClientesAntes, 
            vClientesRecente
        )
    )

 

Clientes ativos v1 = 
    VAR vDias = 90
    VAR vDataIni = 
        MIN(Calendario[Date])
    VAR vData = 
        MAX(Calendario[Date])
    VAR vClientesRecente = 
            CALCULATETABLE( 
                VALUES(fat_venda[id_cliente]),
                DATESINPERIOD(
                    Calendario[Date],
                    vData,
                    -vDias,
                DAY
                )
            )
RETURN
    COALESCE(
        COUNTROWS(
            vClientesRecente
        ),
        0
    )

 

ClienteAtivoePerdido.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fiquei um pouco confuso. A tabela dimensão Dim_Churn tem uma coluna que diz se é ativo ou não.
Normalmente a regra que se usa é:

- Verificar quais clientes realizaram compras antes dos 90 dias

- Verificar quais clientes realizaram compras dentro dos 90 dias

- Cruzar quantos clientes compraram antes dos 90 dias e dentro dos 90 dias. Esses são os clientes ativos.

- Cruzar quantos clientes compraram antes dos 90 dias e não compraram dentro dos 90 dias. Esses são os clientes perdidos.

 

OU seja, a princípio, não precisaria usar esta colina de ativo e inativo.

 

Explique um pouco melhor o que é esta coluna e se ela deve ser ou não usada nos cálculos, por favor.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

oi @Bruno Abdalla de Souza essa coluna eu criei para tentar uma solução, mas não deu certo, não é regra. 

Todos esses 4 pontos que tu citou eu preciso calcular, perfeito! só não tinha essa noção de comparar com período anterior de 90 dias (talvez aí o problema)

Cliente Ativo = cliente que efetuou compra dentro de 90 dias. (quantos e quais clientes)

Cliente Perdido = cliente sem compra dentro 90 dias. (quantos e quais clientes)

CHURN = Taxa perda dos clientes (clientes perdido) que pararam de comprar dentro de 90 dias.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

oi @Bruno Abdalla de Souza 

Pelo que entendi, número 1 (Clientes Ativo v1) é cliente que comprou dentro 90 dias e também comprou antes dos 90 dias(mas qual período anterior?)

Para saber quantos e quais clientes compraram dentro dos últimos 90 dias sem comparar se comprou com período anterior, como faria?

image.png.d647e86093d16b3ed8437c1878877fbe.png

 

Os Clientes Perdidos v1 está contabilizando clientes de toda base que não compraram antes dos últimos 90 dias, teria que fixar a comparação.

Na imagem está somando cliente mês abril. Não sei se vc conseguiu entender minha colocação. Pq se comparar últimos 90 dias. Ex.: nov/out/set(90dias atuais) com jun/jul/ago(90 dias anteriores). Não entraria abril na contagem dos clientes perdidos.

image.png.f1bfd3109872c3d8c2da00630b7a8bec.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Qual é a regra que você deseja para cada um deles?

Ativo: em relação à data de hoje, verificar quais clientes compraram 90 dias antes e também compraram nos 90 dias anteriores a este período?

Perdidos: em relação à data de hoje, verificar quais clientes não compraram 90 dias antes, mas compraram nos 90 dias anteriores a este período?

 

Se for isso, de fato preciso arrumar a medida. Só me fale qual a regra vc deseja.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Veja aí. 

Clientes ativos v1 = 
    VAR vDias = 90
    VAR vHoje = TODAY()
    VAR vIniRecente = vHoje - vDias
    VAR vClientesRecentes = 
            CALCULATE( 
                DISTINCTCOUNT(fat_venda[id_cliente]),
                DATESBETWEEN(
                    Calendario[Date],
                    vIniRecente,
                    vHoje
                )
            )
RETURN
    COALESCE(
        vClientesRecentes,
        0
    )

 

Clientes perdidos v1 = 
    VAR vDias = 90
    VAR vHoje = TODAY()
    VAR vIniRecente = vHoje - vDias
    VAR vIniContexto = 
        CALCULATE(
            MIN(Calendario[Date]),
            ALL(Calendario[Date])
        )
    VAR vClientesRecentes= 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vIniRecente,
                vHoje
            )
        )
    VAR vClientesAntigos = 
        CALCULATETABLE(
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vIniContexto,
                vIniRecente-1
            )
        )
RETURN
    COALESCE(
        COUNTROWS(
            EXCEPT(vClientesAntigos, vClientesRecentes)
        ),
        0
    )

 

1285060265_ClienteAtivoePerdido.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Veja essa regra, considerado o ano filtrado:

Clientes ativos v1 = 
    VAR vDias = 90
    VAR vHoje = TODAY()
    VAR vDataMaxContexto = MAX(Calendario[Date])
    VAR vDataMax = 
        IF(
            vDataMaxContexto >= vHoje, 
            vHoje,
            vDataMaxContexto
        )
    VAR vIniRecente = vDataMax - vDias
    VAR vClientesRecentes = 
            CALCULATE( 
                DISTINCTCOUNT(fat_venda[id_cliente]),
                DATESBETWEEN(
                    Calendario[Date],
                    vIniRecente,
                    vDataMax
                )
            )
RETURN
    COALESCE(
        vClientesRecentes,
        0
    )

 

Clientes perdidos v1 = 
    VAR vDias = 90
    VAR vHoje = TODAY()
    VAR vDataMaxContexto = MAX(Calendario[Date])
    VAR vDataMax = 
        IF(
            vDataMaxContexto >= vHoje, 
            vHoje,
            vDataMaxContexto
        )
    VAR vIniRecente = vDataMax - vDias
    VAR vIniContexto = MIN(Calendario[Date])
    VAR vClientesRecentes= 
        CALCULATETABLE( 
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vIniRecente,
                vDataMax
            )
        )
    VAR vClientesAntigos = 
        CALCULATETABLE(
            VALUES(fat_venda[id_cliente]),
            DATESBETWEEN(
                Calendario[Date],
                vIniContexto,
                vIniRecente-1
            )
        )
RETURN
    COALESCE(
        COUNTROWS(
            EXCEPT(vClientesAntigos, vClientesRecentes)
        ),
        0
    )

 

1544928941_ClienteAtivoePerdido.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

oi @Bruno Abdalla de Souza

Utilizei a primeira solução, mas aplicando filtro de mês, as medidas ficam em branco nos cartões (ativos e perdidos), não assumem o contexto de mês. 

Os gráficos consigo apresentar por mês ou trimestre (gráfico perdidos e gráfico para ativos)? Tentei com as medidas, mas não deu certo. 

Abaixo o modelo pra ti verificar o comportamento dos filtros. 

 

774357259_ClienteAtivoePerdido.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Bruno Abdalla de Souza, boa tarde! Tudo  bem? Estava procurando por uma ajuda, e vi que este problema da Amanda é bem parecido com o meu, sendo que preciso contar a quantidade de clientes de 90 dias pra trás, ou seja. Se eu estou em fev/22 (28/02/2022) - 90 = 30/11/2021, preciso contar a quantidade de clientes de de 29/11/2021 pra trás de toda minha base de vendas.

Consegue me ajudar por favor?

Já estou há umas semanas em buscar disto kkk.

Desde já muito obrigado.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...