Saltar al contenido

lección 1

Bienvenida a Donare

Tu tercer encargo, en una ONG: vuelves a clasificar (renueva o no), pero la clase que importa es muy minoritaria, y eso cambia cómo mides.

⏱ 50 min

## Lunes, 9:15. Tu tercer encargo

Ya no es tu primer día en una empresa de datos, ni el segundo. Vienes de dos trabajos muy distintos: una operadora de telefonía, donde montaste un modelo para adivinar qué clientes estaban a punto de darse de baja y aprendiste a desconfiar de los resultados demasiado buenos; y una empresa de agricultura de precisión, donde predijiste un número y aprendiste que la forma real de los datos casi nunca es la que uno espera. Hoy empiezas en un sitio con otra cultura por completo —una ONG— y con un problema que, por debajo, es de la misma familia que el primero: clasificar. Esta lección no lleva una sola línea de código, y es a propósito: antes de predecir nada conviene entender dónde has aterrizado, quién te pide las cosas y qué decisión se va a tomar con tu respuesta.

Donare es una ONG de cooperación y acción social que nació en 2009 en Valladolid, al calor de un grupo de voluntarios que llevaba años haciendo campañas sueltas y decidió darles continuidad. El salto que la convirtió en una organización estable no fue una campaña famosa: fue entender que una ONG no vive de donaciones puntuales, vive de su base de socios recurrentes. Un socio que paga su cuota todos los meses es lo que permite firmar un proyecto a tres años, pagar a un cooperante o comprometerse con una comunidad; una donación suelta, por generosa que sea, no se puede presupuestar. Hoy Donare tiene unos 45.000 socios y una red de captación que trabaja por varios canales.

El problema que les quita el sueño no es captar socios —captan de sobra—, es que cada año una parte no renueva su cuota, y recaptar a un socio perdido cuesta mucho más que mantener al que ya está. Donare sabe su no-renovación a toro pasado: al cerrar cada ciclo mira cuántos socios se cayeron. Pero no sabe quién va a no renovar el ciclo que viene, así que el equipo de fidelización llama a bulto o solo reacciona cuando el socio ya ha pedido la baja. Y ese equipo tiene gente para llamar a unos pocos miles al año, no a los 45.000. El cuello de botella es a quién llamar primero. Ahí entras tú.

## El cambio que te va a cambiar la cabeza: la clase que importa es rara

Aquí está la primera idea importante de la semana, y conviene entenderla despacio porque ordena todo lo demás. En tu primer trabajo también clasificabas: cada cliente caía en una de dos casillas, «se va» o «se queda». Aquí es parecido: cada socio caerá en «renueva» o «no renueva». Pero hay una diferencia que lo cambia todo. En aquella operadora se iba alrededor de la mitad de los que mirabas, o al menos una porción respetable. Aquí no renueva en torno a 1 de cada 10. Es decir, nueve de cada diez socios renuevan sin más. La casilla que de verdad te importa —el que no renueva, el que hay que llamar— es minoritaria, rara, escasa.

Ese detalle, que parece inofensivo, arrastra una consecuencia enorme en cómo juzgas si tu modelo es bueno. Cuando las dos casillas están equilibradas, preguntar «¿cuántas veces aciertas la casilla?» es razonable. Pero piensa qué pasa cuando una casilla es el 90% y la otra el 10%: un modelo que diga «renueva» a todo el mundo, sin mirar un solo dato, acierta el 90% de las veces. Nueve de cada diez. Y no ha hecho nada. Ese 90% no mide que el modelo sea listo: mide que la clase mayoritaria es enorme. Así que la pregunta «¿qué porcentaje aciertas?» deja de servir, y hay que cambiarla por otra: «de los que de verdad NO renuevan, ¿a cuántos coge mi modelo?». Esa es la única cifra que le sirve a quien tiene que llamar por teléfono.

La diferencia de fondo con un ejercicio de clase. Cuando una clase es el 90%, decir «renueva» a todos ya acierta nueve de cada diez. Ese es el espejismo que te espera el jueves.

Consejo de senior: cuando una de las dos clases es rara, lo primero que tienes que desconfiar es de la palabra «acierto». Un acierto del 90% no es una buena noticia hasta que sabes qué porcentaje tiene la clase mayoritaria. Si el 90% de los socios renueva y tu modelo acierta el 90%, puede que tu modelo no haya aprendido nada: puede que solo esté repitiendo lo que ya sabías. Guárdate esa sospecha; esta semana la vas a necesitar.

## Por qué predecir quién no renueva vale dinero (y causa)

Para entender por qué este encargo importa, piensa en la economía de una ONG. Cada socio que no renueva no es solo una cuota que se pierde: es un compromiso recurrente que se rompe, justo lo que permite planificar a años vista. Recaptar a ese socio después cuesta mucho más que haberle hecho una llamada a tiempo. Y el equipo de fidelización ya hace esas llamadas: cuando llaman antes de que el socio se caiga —una llamada de agradecimiento, recordarle el impacto de su cuota, ofrecerle bajar el importe en vez de perderlo— retienen a una parte. El problema es que no tienen manos para llamar a los 45.000 socios. Tienen para unos pocos miles.

Ahí está el valor de tu modelo. Si pudieras darle a fidelización una lista ordenada —estos son los socios con más riesgo de no renovar, llamad a estos primero— sus pocas llamadas irían a quien de verdad está a punto de caerse, en vez de gastarse en gente que iba a renovar igual. No es un informe bonito: son socios salvados, cuotas que se mantienen, proyectos que siguen en pie. El problema es que esa lista no existe todavía. Lo vas a construir tú. Y el reto, ya lo intuyes, no va a ser entrenar el modelo: va a ser que la lista cace de verdad a los pocos que importan.

El viaje del dato en Donare. La organización sabe contar bajas a toro pasado; tú vas a enseñarle a anticiparlas y a ordenar a quién llamar antes de que se caiga.

## El equipo: quién te pide qué

En un equipo pequeño, saber a quién acudir para cada cosa ahorra horas. Estos son los cuatro nombres que vas a oír toda la semana, y no todos quieren lo mismo de ti.

  • Álvaro Cambronero — Data Lead, tu mentor. Estadístico de formación, quince años entre un instituto de encuestas y una consultora del tercer sector antes de montar el equipo de datos de Donare. Ha visto demasiados informes que presumían de «90% de acierto» sin que nadie preguntara 90% de qué. Enseña con preguntas en vez de dar respuestas, y es obsesivo con una sola cosa: que midas el modelo donde duele, en la clase que importa, no en el promedio cómodo. Su frase: «Una ONG no te paga por acertar a los que se quedan. Esos ya están. Te paga por cazar a los que se van, que son los pocos a los que da tiempo de llamar.»
  • Marisol Quintana — Responsable de Fidelización, tu stakeholder. Ocho años en captación, empezó en una mesa de calle con el peto puesto. Conoce a los socios como nadie en la casa, y ya tiene su conclusión antes de ver un solo dato: «los que no renuevan son los que captamos en la calle, firman por el chico simpático del peto y a los tres meses ni se acuerdan; dame la lista de esos y ya». No es cerrada, es que cada semana sin lista son socios que se caen sin que nadie les llame. Te pasa los datos y mete prisa.
  • Jon Elizalde — Analista de Datos mid, tu compañero. Economía más tres años en Donare. Es tu apoyo del día a día: conoce todas las marranadas que mandan Salesforce, la pasarela de pagos y Mailchimp porque las sufre a diario. A veces te suelta un atajo sin explicarte por qué funciona. Y repite una frasecita a la que nadie hace mucho caso: «ojo cuando un modelo acierte muchísimo a la primera, que a lo mejor es que casi nadie se va y le basta con decir que no se va nadie».
  • Teresa Olmedo — Directora de Fondos y Socios, la audiencia de la demo del viernes. Veinticinco años en el tercer sector. No quiere ver tu código ni tus matrices de confusión: quiere saber si la lista sirve para que su equipo salve socios y a cuántos llega. Prefiere una cifra honesta incómoda a una bonita que luego le explote en una reunión con el patronato. Si le enseñas un gráfico que no se entiende en cinco segundos, desconecta.

Hay una tensión sana entre Álvaro y Marisol que vas a vivir toda la semana, y conviene entenderla en vez de sufrirla. Marisol quiere la lista ya y da por hecho que los de la calle no renuevan; Álvaro quiere que la lista cace de verdad a los que se van, no que confirme un prejuicio, y frena las conclusiones de Marisol hasta ver qué métrica importa. Las dos posturas tienen parte de razón, y tú estás en medio. La lección que te llevas no es «hazle caso a una»: es que confirmarle a alguien lo que ya cree, sin haberlo comprobado donde importa, es la forma más fácil de entregar una lista inútil.

## Dónde vive cada dato: el stack de Donare

Antes de tocar nada, conviene saber de dónde salen los datos que vas a usar y por qué tú trabajas en Python y no en la herramienta que ve el resto de la organización. Donare usa Looker Studio para los paneles que ve dirección: cuántos socios hay, cuánto se recauda al mes. Eso describe lo que ya pasó, y para eso está muy bien. Pero para predecir qué socios no van a renovar hace falta entrenar un modelo que ordene a los socios por riesgo, y eso vive en Python —con pandas para preparar los datos y una librería llamada scikit-learn para el modelo—, con algo de SQL para cruzar los extractos. Esta semana te quedas en esa fase: nadie espera que toques Looker.

Los datos nacen en cuatro sitios distintos y por eso llegan descoordinados. La ficha de cada socio vive en el CRM (cuota, domiciliación, canal por el que se captó, antigüedad); las donaciones puntuales y las cuotas pasan por la pasarela de pagos; las aperturas y los clics de los boletines los guarda Mailchimp; y la asistencia a actos y jornadas está en una hoja de registro de eventos. Aparte, las renovaciones del último ciclo —de donde sale si un socio renovó o no— y la lista de socios activos de hoy, que son los que tendrás que puntuar. Nadie ha unificado nunca esas fuentes, así que una de tus primeras tareas será cruzarlas y dejarlas coherentes. Antes de eso, mira el viaje entero de un vistazo.

El viaje del dato. Nace en cuatro fuentes que nadie coordinó, se exporta como CSV sucios y llega a tu portátil. Lo primero del trabajo real es cruzarlas y limpiarlas.

Esos CSV vienen sucios de varias fuentes, y conviene que lo sepas de entrada: la cuota del socio y los importes de donación llegan como texto con el «€» pegado y la coma decimal («12,89 €»); el canal de captación está escrito de catorce maneras distintas (calle, Calle, F2F, face to face, EVENTO...); hay edades imposibles de formularios mal validados (un socio de 200 años); las provincias mezclan mayúsculas y acentos; y hay algún socio_id de donaciones o eventos que no casa con ningún socio. Nadie los ha unificado. Antes de calcular nada, hay que limpiarlos, y eso es el trabajo del martes.

## La semana que tienes por delante

Tu semana sigue el ritmo de un proyecto real. El lunes montas el proyecto y exploras los datos sin tocarlos. El martes los limpias, construyes el target (si cada socio renovó o no) y descubres el reparto de clases. El miércoles entrenas tu primer modelo y te llevas una alegría enorme. El jueves esa alegría se complica —y es el día que de verdad te hace científico de datos—. Y el viernes conviertes todo eso en algo que Teresa pueda entender en cinco segundos y en una lista en la que fidelización pueda fiarse. Fíjate en una cosa: el día que de verdad tocas scikit-learn con ganas es solo el miércoles. El resto es entender, limpiar, dudar y contar, y esa proporción no es un capricho: es cómo se reparte el tiempo en el trabajo real.

El mapa de la semana. El modelo es solo el miércoles; el resto es entender, dudar y contar. El giro de verdad llega el jueves, cuando el 90% se desinfla.

## Dos entregables: la lista y el repositorio

Antes de cerrar el primer día, Álvaro te deja una cosa clara que cambia cómo trabajas toda la semana. El viernes no entregas solo una conclusión para Teresa. Entregas dos cosas. La primera es el mensaje para negocio: una lista priorizada de socios por riesgo de no renovar, en el idioma de quien tiene que llamar. La segunda es un repositorio de proyecto ordenado, el mismo que usarías si esto fuera a producción. «Cuando acabes», te dice Álvaro, «no tendrás un montón de trozos de código sueltos: tendrás un proyecto que puedes abrir, entender y, si quieres, subir a tu GitHub como pieza de portfolio». Un repositorio es, sin misterio, la carpeta de un proyecto con sus ficheros organizados de una forma que cualquiera reconoce: dónde están los datos, dónde el código, dónde lo que el código produce.

Esto tiene una consecuencia que notarás cada día aunque al principio no te des cuenta. Cada ejercicio de código que resuelvas no es un trozo aislado: es un fragmento de un fichero concreto del proyecto. Los ejercicios de explorar van llenando un fichero; los de limpieza, otro; los del modelo, otro. Tú los resuelves de uno en uno, centrado en el problema de ese momento, pero por debajo estás escribiendo un programa completo y ordenado. El viernes, al mirar atrás, descubrirás que lo que parecían ejercicios sueltos era, todo el tiempo, un proyecto montándose pieza a pieza. Este es el esqueleto que ya te han dejado preparado; no hace falta memorizarlo, es el mapa de lo que tendrás el viernes.

El esqueleto del repositorio. Vacío hoy; el viernes estará lleno. Cada día rellena uno de los ficheros numerados de src/, en el orden en que se ejecuta el proyecto.

Lo único que importa que te lleves hoy es la idea de fondo, que ordena toda la semana: no estás haciendo ejercicios, estás construyendo un proyecto. Y un proyecto honesto, que caza a los socios que de verdad están a punto de irse, vale mucho más que un número bonito que se deja fuera justo a los que había que llamar. Ya sabes cuál es tu encargo y por qué importa. Mañana empiezas a mirar los datos de verdad.

A partir de la siguiente lección trabajarás con los datos reales de Donare: la ficha de cada socio (cuota, canal de captación, domiciliación, antigüedad, edad, provincia), las donaciones puntuales, la actividad de email (aperturas y clics), la asistencia a eventos, las renovaciones del último ciclo (de donde sale si renovó o no) y los socios activos de hoy, que son los que al final tendrás que puntuar por riesgo. Descárgalos desde el apartado de datasets del caso. Vienen sucios a propósito: importes como texto con «€», canales escritos de mil maneras, edades imposibles y algún id que no casa. Tendrás Python con pandas y scikit-learn, y DuckDB para las consultas SQL.

volver a la visión del caso y descargar los datasets

Regístrate para guardar tu progreso.