La solicitud

De Jordan Reyes, Director de Marketing

“Siempre escucho que la mayoría de nuestros pedidos vienen de gente que ya nos conoce. Antes de planear el presupuesto de adquisición del próximo año: ¿cuántos pedidos de cada año fueron el primer pedido de alguien y cuántos vinieron de clientes recurrentes?”

Tu objetivo

A partir de booked (pedidos contabilizados, construido en el código inicial), asigna a result un DataFrame con una fila por año y las columnas year, new_orders (pedidos que son el primer pedido contabilizado del cliente), returning_orders (todos los demás pedidos contabilizados) y new_share_pct (new_orders * 100 / todos los pedidos contabilizados de ese año, redondeado a 2). El primer pedido de un cliente es el pedido contabilizado con su order_id más bajo. Ordena por año.

  • Muestra exactamente year new_orders returning_orders new_share_pctpendiente
  • 3 filas, ordenadas como se pidependiente

Tu código

Python

Cargando el editor…

    ResultadoPresiona Ejecutar para ver el tuyo

    Mote revisa tu resultado

    Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

    La lección

    Dos tipos de pedido

    Todo pedido es el primer pedido de un cliente (una adquisición) o un pedido repetido de un cliente que la tienda ya tiene. Los equipos de marketing los separan porque se compran de forma distinta: los primeros pedidos cuestan dinero en anuncios; los pedidos repetidos vienen sobre todo de la calidad del producto, el correo y el hábito.

    En Harbor & Pine la división está desequilibrada. En 2025 hubo 4,409 pedidos contabilizados y solo 641 fueron el primero de alguien:

    # year  new_orders  returning_orders  new_share_pct
    # 2023         574              2398          19.31
    # 2024         525              3247          13.92
    # 2025         641              3768          14.54

    Cerca de seis de cada siete pedidos vienen de clientes que ya habían comprado.

    Cuál es el “primero”

    La definición necesita dos decisiones. ¿Qué estados cuentan? Solo los pedidos contabilizados (completed o refunded). Un cliente cuyo primer intento se canceló no fue adquirido ese día; fue adquirido cuando pagó por primera vez. ¿Cómo se desempata? Los ids de pedido crecen con el tiempo, así que el order_id contabilizado más bajo por cliente es su primer pedido. Usar el order_date mínimo funciona casi siempre, pero un cliente hizo tres pedidos en el mismo segundo en 2024, y una marca basada en fecha cuenta los tres como “primero”.

    En pandas, groupby(...).transform("min") devuelve el mínimo del grupo en cada fila del grupo, así que una sola comparación marca el primer pedido:

    first_id = booked.groupby("customer_id")["order_id"].transform("min")
    booked["is_new"] = booked["order_id"] == first_id

    El primer año de datos miente

    2023 muestra 19.31 % de pedidos nuevos, muy por encima de los años siguientes. Parte de eso es crecimiento real, pero parte es censura por la izquierda: los datos empiezan el 2023-01-01, así que un cliente leal que compraba desde 2022 aparece en 2023 con un “primer pedido”. 152 de los 574 clientes contados como nuevos en 2023 se habían registrado antes de 2023. Donde sea que empiece la ventana, el primer período sobreestima la adquisición. Repórtalo con una nota o déjalo fuera de las líneas de tendencia.

    Errores comunes

    • Contar clientes nuevos desde signup_date. Registrarse no es comprar. 278 clientes no tienen ningún pedido contabilizado (247 nunca hicieron uno).
    • Usar todos los estados. Los pedidos cancelados y pendientes inflan ambos conteos y mueven el primer pedido a una fecha en la que no se pagó nada.
    • Leer la proporción como crecimiento. Una proporción de nuevos que cae puede significar que la adquisición se frenó o que la recompra creció más rápido. Mira ambos conteos, no solo el porcentaje.

    Nota de entrevista

    “¿Cómo definirías a un cliente nuevo?” no tiene una única respuesta correcta, y por eso se pregunta. Di qué cuenta como pedido, cómo encuentras el primero y qué le hace el inicio de los datos al primer período. Esa es la respuesta.

    Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.