Volver al sitio

Tableau: Cómo controlar la frecuencia de compra de tus clientes

Calcula y controla la frecuencia de compra de tus clientes para anticiparse y facilitar la consecución de los objetivos de ventas de tu empresa

Introducción

Vamos a construir con Tableau un sencillo modelo de análisis con una batería de indicadores y visualizaciones que nos permitan controlar la frecuencia de pedidos de los clientes.

El objetivo es encontrar el tiempo promedio entre pedidos para un cliente concreto y calcular si desde su pedido más reciente ha pasado más tiempo del tiempo promedio entre pedidos.
La razón de calificarla como "sencillo" se debe a que el modelo de análisis no tiene en cuenta el patrón de compra del cliente ni su tendencia. Es decir, no tiene en cuenta si están comprando mucho más recientemente de lo que compraban al principio. para comenzar o la estacionalidad en el historial de compra del cliente (si un cliente compra en grandes cantidades y luego se deja de hacerlo por un tiempo para volver a comprar más tarde).
La razón principal de esto se debe a la forma en que Tableau se conecta a los datos. Los datos no están ordenados de una determinada manera, por lo que es difícil hacer cálculos que ordenen los datos y los mantengan en ese orden concreto. Podemos construir una tabla y hacer un cálculo en ella, pero una vez que la muevo para crear un gráfico, gran parte de lo que hemos construido deja de funcionar de la misma manera. Por eso me hemos decidido usar un promedio simple para este modelo.
 
Así que empezamos a construirlo. Usaremos para ello el conjunto de datos de Supertienda que se encuentra disponible al abrir Tableau abajo a la izquierda de la pantalla de inicio.

broken image

Datos de ejemplo de Supertienda de Tableau

Construcción de la tabla

Cuando estoy elaborando algo un poco complejo en Tableau, siempre me gusta empezar creando una tabla de texto y construyendo todo paso por paso, a menudo revisando manualmente algunos cálculos con una calculadora para verificar que Tableau está haciendo lo que le estoy diciendo.
Lo primero que voy a hacer es crear una lista de todos los clientes, arrastrando el nombre del cliente a las filas.
A continuación, voy a arrastrar la fecha del pedido a las filas y convertir el tipo de datos a "Fecha exacta" y a "Discreto".

broken image

Fecha exacta de pedido

Al cambiarlo a "Fecha exacta", se convierte a continuo, simplemente haz clic con el botón derecho y cambiaba a discreto.
 
Ahora quiero saber la fecha de pedido más reciente para cada uno de mis clientes. Podría hacer esto con un cálculo de tabla, pero voy a usar una función LOD (función de cálculo fuera de contexto), de modo que pueda usar este campo más adelante para las expresiones LOD subsiguientes y en otros gráficos, sin tener que ajustar lo que está calculado cada vez.

broken image

Tableau fórmula LOD: Fecha del pedido más reciente por cliente

{ FIXED [Nombre del cliente]: MAX ( [Fecha del pedido] ) }

Esta expresión LOD es relativamente sencilla: para cada cliente calcula la fecha de pedido más reciente.
Arrastra este campo calculado a las filas y conviértelo a "Fecha exacta" y "Discreto".
 
Vamos a hacer lo mismo para el primer pedido del cliente con la siguiente expresión:
{ FIXED [Nombre del cliente]: MIN ( [Fecha del pedido] ) }
 
Esta expresión calcula la 1ª fecha de pedido por clienter de nuestro conjunto de datos. Realmente no voy a usar estos cálculos para nada más, pero los voy a replicar dentro de otra expresión LOD, así que los calculo solo para comprobar posteriormente que las expresiones LOD sean correctas.

broken image

Primera y más recientes fecha de pedido por cliente

Ahora quiero saber la cantidad de tiempo que hay entre la fecha del primer pedido y la fecha del pedido más reciente. Para calcularlo, vamos a usar la función DATEDIFF.

broken image

Tableau fórmula LOD: Días entre el primer y el último pedido, por cliente.

{ FIXED [Nombre del cliente]: DATEDIFF ( 'day', MIN([Fecha del pedido] ), MAX( [Fecha del pedido])) }
 
Este cálculo indica lo siguiente: para cada cliente calcula la diferencia, en días, entre la primera fecha de pedido y la última fecha de pedido.
Vamos a añadir este campo calculado al estante "Texto" del lienzo de Tableau.

broken image

Días entre el primer y el último pedido, por cliente.

Ahora vamos a crear una nueva función LOD para calcular cada cuántos días cada cliente realiza un pedido. Esto junto con el cálculo anterior, se utilizará para calcular mi promedio.

broken image

Tableau fórmula LOD: Número de días en que se hicieron pedidos o número de pedidos por cliente

{ FIXED [Nombre del cliente]: COUNTD ( [Fecha del pedido] ) }

Esto nos dirá el número de días en que un cliente solicitó pedidos. Utilizo COUNT DISTINCT porque es posible que un cliente haya pedido dos veces en un solo día, pero no quiero que esto impida calcular correctamente mi promedio de tiempo entre pedidos.
 
Voy a arrastrar esta expresión a la vista. Si la arrastro sobre el texto, que ya está en la vista, aparecerá un cuadro "Mostrarme" como se ve a continuación:

broken image

Soltar un campo sobre una medida ya existente.

y al soltar este campo calculado sobre la vista debería resultar lo siguiente:

broken image

Pedidos por cliente y rango de días en los que se realizaron estos pedidos

Lo que ahora podemos ver es que el tiempo promedio entre pedidos debe calcularse dividiendo el tiempo entre el primer y el último pedido por el número de pedidos, para cada cliente.
 
Vamos a crear un nuevo campo calculado usando la siguiente expresión LOD para ello:

broken image

Tableau fórmula LOD: Promedio de días entre pedidos

{ FIXED [Nombre del cliente]: SUM ( [_dias entre primer pedido y ultimo] )/COUNTD ( [Fecha del pedido] ) }
Esta expresión divide el número de días entre el primer y el último pedido por cliente por el número de pedidos, por cliente, en ese rango de fechas.

broken image

Promedio de días entre pedidos, por cliente.

Podemos ver que muchos de los cálculos que estamos construyendo no son necesarios, las estamos construyendo solo para verificar que nuestro trabajo es correcto. Podemos deshacernos de ellos más adelante para mantener limpio el cuadro de mando que hagamos, o se pueden mantener para que otras personas puedan construir tablas similares.
 
El siguiente paso es calcular la diferencia en días entre la fecha actual y la fecha de pedido más reciente de cada cliente. Tableau tiene una práctica función NOW (), que toma la configuración actual de fecha y hora de nuestro equipo (y que se muestran en la esquina inferior derechaj en los PC y en la barra superior a la derecha en los MAC).

Vamos a crear un nuevo campo calculado utilizando las funciones DATEDIFF () y NOW ():

broken image

Tableau fórmula LOD: tiempo desde el pedido más reciente

{ FIXED [ Nombre del cliente ]: DATEDIFF('day', MAX ( [Fecha del pedido]), NOW() ) }

Este cálculo dice lo siguiente: para cada cliente, calcula la diferencia en días, entre el pedido más reciente y la fecha de hoy. Vemos que hemos utilizado algunas de las fórmulas que hemos utilizado anteriormente.

broken image

Tiempo transcurrido desde el pedido más reciente, por cliente.

Ahora vamos a crear un nuevo campo calculado con un cálculo booleano (verdadero o falso) que nos diga si ha pasado más tiempo desde el último pedido de un cliente respecto al tiempo promedio entre pedidos de dicho cliente.

broken image

¿ Días desde el último pedido es mayor que la media de días entre pedidos del cliente?

SUM ( [_días entre el pedido mas reciente]) > SUM([_media de días entre pedidos] )

Esta formula devolverá "Verdadero" si no ha habido un pedido recientemente y "Falso" si se ha hecho.
Arrastremos este campo calculado a las filas para verificar que está haciendo bien su trabajo.

broken image

Respuesta verdadera / falsa para cada cliente.

Ahora, no sólo queremos saber si el cliente ha hecho un pedido recientemente o no, también queremos saber cuánto tiempo hay de diferencia.
Para ello creamos un campo calculado con una expresión bastante similar al campo calculado anterior, simplemente sustituimos el signo ">" por el signo "-"para restar el tiempo promedio entre pedidos respecto a cuando se hizo el pedido más reciente.

broken image

Diferencia de tiempo entre el pedido más reciente y el tiempo promedio de pedido

SUM([_días entre el pedido mas reciente])-SUM([_media de días entre pedidos])

Esto devolverá un valor negativo si un cliente ha pedido recientemente y un valor positivo si no lo ha hecho.
Añade este campo a la vista para verificar su funcionamiento.

broken image

Diferencia en días, los negativos indican un pedido reciente y los positivos un pedido menos reciente

Entonces tenemos algunos clientes que no han pedido en mucho tiempo. Probablemente se puede asumir que se han ido hace tiempo, así que tal vez queremos subrayar los abandonos más recientes.
Para ello vamos a utilizar el cálculo anterior y establecer un límite. Este límite es flexible. Usaremos 30 días, pero una vez conozcamos más a nuestros clientes podremos establecer nuestros propios límites.

broken image

Estableciendo una ventana de 30 días

[_dias entre pedido último y media de pedidos] >=0
AND
[_dias entre pedido último y media de pedidos] <30

Esto devolverá solo a los clientes que no hayan hecho un pedido dentro de los 30 días mas de lo que es habitual para ellos. El ">=0" excluirá a los que ordenaron recientemente.
Esto se puede agregar al color para resaltar al cliente o a un filtro para reducir los datos en la vista, dependiendo de cómo desee visualizarlos.

Elaboración de la visualización

Vamos a hacer la visualización. Aquí es donde tendremos que pensar cuáles son las características más importantes de los clientes, qué tipo de cliente es el que mas deseamos no perder y hacerle un seguimiento.
Puede ser que queramos mantener a los clientes rentables, o aquellos que han proporcionado la mayor facturación o la mayor venta por unidades, o podríamos crear una nueva medida, como el total de ventas / número de pedidos para encontrar los clientes que han realizado los pedidos más valiosos, o la relación rentabilidad / número de pedidos, etc. La decisión de priorizar a los clientes depende de cada negocio y de cada uno de nosotros.

broken image

Distribución de clientes por diferencia de días entre el último pedido y el tiempo promedio entre pedidos y ventas

Como controlar la frecuencia de compra de tus clientes

Clientes dentro de la ventana de 30 días de compra con color naranja

Elaboración de un cuadro de mando sencillo

Aunque este tipo de gráficos son excelentes para ver la situación actual de los pedidos de clientes, no suelen fáciles de entender, por lo que vamos a crear un cuadro de mando con tablas sencillas que podamos utilizar de una forma más práctica.
Vamos a crear una tabla para clientes digamos que "VIP", es decir, aquellos que han generado la mayor rentabilidad en general, con quienes queremos contactar personalmente, sin importar cuánto tiempo haya pasado. El esfuerzo vale la pena el tiempo invertido, incluso si se genera una sola venta de esos clientes.

broken image

Los clientes más rentables, independientemente del tiempo desde el último pedido

Vamos a crear otra tabla para clientes dentro de un umbral de 30 días, ordenada por las ventas medias por pedido. Igual a estos clientes se les puede enviar un correo electrónico con un código de descuento o algún tipo de incentivo para animarles a comprar.

broken image

Clientes dentro de un umbral de 30 días

Ahora vamos a crear una tabla final que mostrará a todos los clientes dentro de los 15 días de su tiempo promedio entre pedidos, pero en la otra dirección. Estos son los clientes que se acercan a su frecuencia habitual para realizar un pedido, por lo que tal vez podamos hacer alguna campaña para que vuelvan a comprar.

broken image

Conclusión

El uso de cálculos e indicadores como estos y la presentación de los datos de forma sencilla y significativa ayuda a reaccionar ante una caída de las ventas de un cliente o incluso adelantarse a dicha caída.
Aunque hemos utilizado el juego de datos de Supertienda y lo hemos descrito como una empresa comercial, las aplicaciones de estos modelos no se limitan a una empresa cuando los clientes dejan de comprar. Se puede utilizar para revisar la frecuencia con que las personas visitan centros médicos o reciben tratamiento, la frecuencia personas sin hogar o personas mayores acceden a servicios sociales para pedir ayuda por ejemplo.