Módulo 2: Funnels And Conversion

Leer un funnel en contexto: segmentos, no solo el agregado

Descripción

Un funnel agregado —todos los usuarios mezclados, como el que usaste en las lecciones 2 a 6— es un promedio ponderado de todos los caminos distintos que hay detrás de él. Detrás del 9.0% de conversión global de Mercado puede haber un segmento que convierte muy bien y otro que convierte mal, mezclados en un solo número que no representa fielmente a ninguno de los dos. Esta lección enseña a segmentar el mismo funnel (por ejemplo, mobile contra desktop) y a compararlos correctamente — por tasa, no por volumen — antes de decidir dónde está de verdad el problema.

Conexión con el módulo. Esta es la última pieza antes del proyecto: hasta aquí aprendiste a leer un funnel agregado de punta a punta (lecciones 2 a 6); esta lección te enseña que ese agregado puede esconder una historia distinta según quién lo cruce, y te da la disciplina para comparar segmentos sin caer en el error de comparar números que no son comparables entre sí.

Una analogía cotidiana: la temperatura promedio de la casa con la ventana abierta

Imagina que mides la temperatura promedio de toda tu casa y te da 22°C, una temperatura agradable. Pero esa casa tiene una habitación con la ventana abierta en pleno invierno (12°C) y el resto de la casa muy caliente por la calefacción (26°C) — el promedio de 22°C no describe la experiencia de nadie que esté parado en ninguna de las dos habitaciones: quien está en la habitación fría tiene frío de verdad, y el promedio general no lo revela. El funnel agregado de un producto puede ser igual de engañoso: un 9.0% de conversión global "agradable" puede estar promediando un segmento que convierte al 16.7% (la habitación caliente) con otro que apenas llega al 5.7% (la habitación con la ventana abierta) — y si nadie separa los dos números, nadie va nunca a cerrar esa ventana.

Ejemplo trabajado: el mismo funnel de Mercado, separado por mobile y desktop

// L7: leer un funnel en contexto -- comparar segmentos normalizados (tasas), no conteos crudos
function funnelAnalysis(steps) {
  const withRates = steps.map((step, i) => {
    if (i === 0) return { name: step.name, users: step.users, conversionRate: null, dropOffRate: null };
    const prevUsers = steps[i - 1].users;
    const conversionRate = step.users / prevUsers;
    const dropOffRate = (prevUsers - step.users) / prevUsers;
    return { name: step.name, users: step.users, conversionRate, dropOffRate };
  });
  const overallConversion = steps[steps.length - 1].users / steps[0].users;
  const worstStep = withRates.slice(1).reduce((worst, s) => (s.dropOffRate > worst.dropOffRate ? s : worst));
  return { steps: withRates, overallConversion, worstStep: worstStep.name, worstDropOffRate: worstStep.dropOffRate };
}

const mobile = [
  { name: 'visit', users: 7000 },
  { name: 'view_product', users: 4000 },
  { name: 'add_to_cart', users: 1400 },
  { name: 'checkout', users: 600 },
  { name: 'purchase', users: 400 },
];

const desktop = [
  { name: 'visit', users: 3000 },
  { name: 'view_product', users: 2000 },
  { name: 'add_to_cart', users: 1000 },
  { name: 'checkout', users: 600 },
  { name: 'purchase', users: 500 },
];

const mobileResult = funnelAnalysis(mobile);
const desktopResult = funnelAnalysis(desktop);

console.log('=== Mismo funnel, dos segmentos -- comparados por TASA, no por conteo ===\n');
console.log('  Mobile:  ' + mobile[0].users + ' visitas -> ' + mobile[mobile.length - 1].users + ' compras'
  + '  |  overallConversion: ' + (mobileResult.overallConversion * 100).toFixed(2) + '%'
  + '  |  peor paso: ' + mobileResult.worstStep + ' (dropOffRate ' + (mobileResult.worstDropOffRate * 100).toFixed(1) + '%)');
console.log('  Desktop: ' + desktop[0].users + ' visitas -> ' + desktop[desktop.length - 1].users + ' compras'
  + '  |  overallConversion: ' + (desktopResult.overallConversion * 100).toFixed(2) + '%'
  + '  |  peor paso: ' + desktopResult.worstStep + ' (dropOffRate ' + (desktopResult.worstDropOffRate * 100).toFixed(1) + '%)');

console.log('\n  Compras totales mobile + desktop: ' + (mobile[mobile.length - 1].users + desktop[desktop.length - 1].users)
  + ' (desktop aporta menos compras en volumen, pero convierte casi 3x mejor por tasa)');

Qué esperar. Al correr el archivo con Node, la salida es exactamente esta:

=== Mismo funnel, dos segmentos -- comparados por TASA, no por conteo ===

  Mobile:  7000 visitas -> 400 compras  |  overallConversion: 5.71%  |  peor paso: add_to_cart (dropOffRate 65.0%)
  Desktop: 3000 visitas -> 500 compras  |  overallConversion: 16.67%  |  peor paso: add_to_cart (dropOffRate 50.0%)

  Compras totales mobile + desktop: 900 (desktop aporta menos compras en volumen, pero convierte casi 3x mejor por tasa)

Ahora compara esto con el funnel agregado que usaste en las lecciones 2 a 6: visit: 10000, view_product: 6000, add_to_cart: 2400, checkout: 1200, purchase: 900, con una conversión global del 9.0%. Suma, paso por paso, los números de mobile y desktop: 7000+3000=10000, 4000+2000=6000, 1400+1000=2400, 600+600=1200, 400+500=900 — son exactamente los mismos números del funnel agregado. El 9.0% de conversión global que analizaste durante todo el módulo era, todo este tiempo, un promedio ponderado de un segmento que convierte al 5.71% (mobile) y otro que convierte casi tres veces mejor, al 16.67% (desktop).

Fíjate en algo más sutil: el "peor paso" es add_to_cart en ambos segmentos, con la misma etiqueta que en el agregado — pero la magnitud de la fuga es muy distinta: 65.0% en mobile contra 50.0% en desktop. Si el equipo de Mercado solo mirara el agregado (60.0% de dropOffRate en add_to_cart), concluiría, correctamente pero de forma incompleta, "hay que arreglar add_to_cart" — sin saber que ese problema es mucho más grave en mobile que en desktop, y que probablemente la causa (¿un formulario de carrito difícil de usar con el pulgar? ¿tiempos de carga más lentos en 4G?) es distinta en cada plataforma. Segmentar no cambia cuál paso priorizar en este caso —los dos segmentos coinciden en add_to_cart— pero sí cambia cómo investigarlo y dónde concentrar el esfuerzo de diseño e ingeniería.

Por qué comparar por tasa, no por volumen

Mira de nuevo la última línea del resultado: "desktop aporta menos compras en volumen, pero convierte casi 3x mejor por tasa". Si alguien comparara los segmentos solo por el número de compras (400 en mobile contra 500 en desktop), podría concluir erróneamente que "desktop y mobile rinden parecido" — una diferencia de apenas 100 compras. Pero esa comparación ignora que mobile tuvo más del doble de las visitas de desktop (7,000 contra 3,000) para lograr esas 400 compras. La comparación correcta normaliza por el tamaño de cada segmento —la tasa de conversión, no el conteo bruto de compras— y revela una diferencia de casi 3x, no de "parecido". Comparar conteos brutos entre segmentos de tamaño distinto es una de las formas más comunes de esconder, sin querer, una brecha real de rendimiento.

Errores comunes

Comparar la conversión de dos segmentos distintos sin normalizar por su tamaño. Qué pasa: alguien mira que mobile generó 400 compras y desktop generó 500, y concluye que "desktop rinde un poco mejor, pero no por mucho" — sin calcular que mobile necesitó 7,000 visitas para esas 400 compras mientras desktop necesitó solo 3,000 para 500. Por qué pasa: los conteos absolutos (400, 500) están justo ahí, en cualquier dashboard, listos para compararse a simple vista; calcular la tasa de cada segmento requiere un paso adicional que se salta con facilidad bajo presión de tiempo. Cómo detectarlo: si una comparación entre segmentos usa solo conteos de usuarios o de compras, sin dividir por el tamaño de entrada de cada segmento, pregunta "¿cuántas visitas tuvo cada uno?" antes de aceptar la conclusión. Cómo corregirlo: cualquier comparación entre segmentos —mobile contra desktop, un país contra otro, usuarios nuevos contra usuarios recurrentes— se hace siempre con la tasa de conversión de cada uno (como hace funnelAnalysis() en esta lección), nunca con el conteo bruto de compras o de usuarios que llegaron al final.

Reportar un solo número agregado y no notar que esconde una brecha grande entre segmentos. Qué pasa: el equipo de Mercado reporta "9.0% de conversión" trimestre tras trimestre como si describiera la experiencia típica de un comprador, sin que nadie pregunte si ese número representa por igual a los usuarios de mobile y de desktop — cuando en realidad el 9.0% es un promedio dominado por el segmento con más volumen (mobile, con 7,000 de las 10,000 visitas), no un número representativo de "cómo convierte un usuario típico" en ninguna plataforma específica. Por qué pasa: un solo número agregado es más fácil de comunicar y de rastrear en el tiempo que una tabla de segmentos, y en ausencia de una señal de alarma explícita (como una caída repentina), nadie tiene el incentivo de desagregarlo. Cómo detectarlo: pregunta, sobre cualquier número agregado de conversión, "¿este número es parecido en los distintos segmentos relevantes (dispositivo, país, tipo de usuario), o está escondiendo un promedio de extremos muy distintos?" — si nadie sabe la respuesta, el número nunca se verificó. Cómo corregirlo: al menos una vez por trimestre (y siempre que el agregado se mueva de forma inesperada), desglosa el funnel por los segmentos más relevantes del negocio —como hiciste aquí con mobile y desktop— para confirmar que el número agregado no está escondiendo una historia distinta en cada pedazo.

Ejercicios

Ejercicio 1 — Calcula el peso de cada segmento en el agregado. De las 10,000 visitas totales de Mercado, ¿qué porcentaje viene de mobile y qué porcentaje de desktop? Con eso, explica por qué el 9.0% agregado está más cerca del 5.71% de mobile que del 16.67% de desktop, aunque el punto medio simple entre ambos sería 11.19%.

Ver solución

Mobile es 7000/10000 = 70% de las visitas; desktop es 3000/10000 = 30%. El 9.0% agregado no es el promedio simple de 5.71% y 16.67% (que sí daría 11.19%) — es un promedio ponderado por el volumen de cada segmento: (7000 × 0.0571 + 3000 × 0.1667) / 10000 ≈ (400 + 500) / 10000 = 9.0%. Como mobile aporta el 70% del tráfico, su tasa de conversión, más baja, "jala" el agregado hacia abajo con más fuerza que la tasa más alta de desktop, que solo representa el 30% del volumen. Esta es la razón matemática exacta por la que el agregado se parece más al segmento mayoritario que a un punto medio ingenuo entre los dos.

Ejercicio 2 — Decide si vale la pena segmentar más. Mercado también podría segmentar el funnel por país (México, Colombia, Chile...) además de por dispositivo. ¿Bajo qué condición tendría sentido invertir el esfuerzo de desglosar por país, y bajo qué condición no valdría la pena, usando el criterio de esta lección?

Ver solución

Vale la pena segmentar por país si hay razones para sospechar que la conversión varía de forma significativa entre países —por ejemplo, si los métodos de pago disponibles, la confianza en comprar en línea, o la velocidad de conexión difieren mucho entre mercados— y si cada país tiene volumen suficiente de visitas para que su tasa de conversión sea un número confiable y no ruido estadístico de una muestra chica. No vale la pena si todos los países tienen un comportamiento de conversión parecido (el agregado ya los representa bien a todos, como pasaría si mobile y desktop hubieran convertido casi igual) o si algunos países tienen tan pocas visitas que su "tasa de conversión" individual es prácticamente aleatoria de una semana a otra. El criterio de fondo es el mismo que motivó segmentar por dispositivo en esta lección: segmenta cuando sospeches una brecha real y tengas suficiente volumen para medirla con confianza, no por segmentar todo lo posible sin una hipótesis de por qué esos grupos serían distintos.

Ejercicio 3 — Conecta con la conversión global. Si el equipo de Mercado lograra, el próximo trimestre, subir la conversión de mobile del 5.71% actual al 10% (sin cambiar nada en desktop ni el volumen de visitas de ningún segmento), ¿cuál sería la nueva conversión global del funnel agregado? Usa los mismos volúmenes de visitas de esta lección.

Ver solución

Con mobile convirtiendo al 10% sobre 7,000 visitas, las compras de mobile subirían de 400 a 7000 × 0.10 = 700. Las compras de desktop se mantienen en 500 (nada cambió ahí). El total de compras sería 700 + 500 = 1200, sobre el mismo total de 10000 visitas: 1200 / 10000 = 12% de conversión global — un salto de 9.0% a 12%, sin tocar nada en desktop. Este cálculo confirma, con un número concreto, por qué segmentar importa para decidir dónde invertir: como mobile es el 70% del volumen (ejercicio 1), mejorar su conversión mueve la aguja del negocio completo mucho más que la misma mejora porcentual aplicada al segmento más chico (desktop).

Resumen y siguiente paso

Un funnel agregado es un promedio ponderado que puede esconder segmentos muy distintos entre sí — con el funnel de Mercado, el 9.0% global resultó ser la mezcla de un mobile que convierte al 5.71% y un desktop que convierte al 16.67%, casi 3 veces mejor. La regla de esta lección es firme: compara segmentos siempre por tasa (normalizada por el tamaño de cada uno), nunca por conteo bruto de usuarios o compras.

Antes de avanzar deberías poder: explicar por qué un número de conversión agregado se parece más al segmento con más volumen que a un promedio simple; y decidir, para dos segmentos cualquiera, si conviene compararlos por tasa o si el conteo bruto también aporta información relevante (por ejemplo, para decidir dónde hay más compras totales en juego, aunque la tasa sea peor).

Con las seis lecciones de tema del módulo completas —qué es un funnel, tasa por paso, conversión global como producto, drop-off y el paso más fugado, micro vs. macro, y segmentación en contexto— el proyecto de la lección 8 junta todo en una sola entrega: instrumentar el funnel de checkout de Mercado, encontrar su paso más fugado, y estimar cuánto vale, en compras reales, arreglarlo.

Recursos

  • Amplitude, "Conversion Funnel and Holding Constant" — amplitude.com/blog/holding-constant. Artículo sobre por qué "mantener constante" un segmento (holding constant) al comparar un funnel evita conclusiones erróneas al mezclar poblaciones distintas. En inglés.
  • Mixpanel, "Understanding Conversion Rate Differences in Funnels" — community.mixpanel.com/x/ask-ai/oguevc2ri7l3/understanding-conversion-rate-differences-in-funne. Explica por qué la tasa de conversión de un mismo funnel puede variar mucho entre segmentos de usuarios. En inglés.
  • GoodUI — goodui.org. Catálogo de patrones de diseño probados con experimentos reales de optimización de conversión, útil como siguiente paso una vez identificado el segmento y paso con más oportunidad. En inglés.