Esta página responde:¿En qué nivel estoy y cuántas personas me faltan para el siguiente?
La determinación mira solo este número, el de personas recomendadas: con 1 persona se sube a T1, con 7 se sube a T3, con 30 se sube a T7 (en el código THRESHOLDS = {"T1": 1, "T3": 7, "T7": 30}, línea 21). Progreso = la posición que alcanza el número de personas dentro del intervalo de su nivel: T0 usa c÷1, T1 usa (c−1)÷6, T3 usa (c−7)÷23, T7 es siempre 1; al final round(min(1, max(0, p)), 2) (línea 59 del código). Los umbrales son fijos y no varían con el número de personas.
/opt/algorithms/functional/motivation_level.py (62 líneas, IMPORTED), corresponde a MotivationLevelModule.run(), líneas 29-63. Los umbrales 1/7/30, el orden de decisión de los cuatro niveles, la fórmula de progreso y el redondeo a 2 decimales se copian tal cual.earnings_rate del código (0.70 / 0.75 / 0.80 de reparto vitalicio), y los dos textos de incentivo interno de la tabla de beneficios — «70%/75%/80% de reparto vitalicio» y «recompensa de caramelos ×5 por persona» —; esto es el criterio de reparto / caramelos del sitio chino, no aplicable al sitio internacional, y esta página no lo muestra. Solo se eliminan ese tipo de textos y campos; los niveles, los umbrales y el progreso no se han tocado ni una palabra.min_invites — no coincide con la versión functional (1/7/30) que traslada esta página. Esta página se traslada según la versión functional indicada en la lista de candidatos; no se ha podido confirmar cuál de las dos versiones está realmente en vigor en la cadena de producción.BaseModule / DataBus y el paso de escritura en el bus. Capa de entrada: el código no valida tipos (pasar una cadena lanza una excepción en la línea 34), mientras que esta página da un mensaje de error claro ante algo que no sea un número.
/opt/algorithms/functional/motivation_level.py (63 líneas, solo lectura): umbrales THRESHOLDS = {"T1": 1, "T3": 7, "T7": 30} = línea 21; tabla de niveles LEVEL_INFO = líneas 22-27; MotivationLevelModule.run() = líneas 29-61; progreso round(min(1.0, max(0.0, progress)), 2) = línea 59.spread_algorithms/algo_motivation_level.py, pero ese archivo tiene umbrales 1/3/7 y nombres de nivel distintos — las dos versiones no coinciden, no se ha confirmado cuál está realmente en vigor en la cadena de producción, y la base final de los umbrales de esta página queda en duda.0 → T0; 1 → T1; 7 → T3; 30 → T7; introduce 3 → T1 y el progreso debería ser (3−1)/(7−1) = 0.33. Con estos cinco números en las líneas 34-49 del código, la clasificación y el progreso deben coincidir.
Todavía no hay slices posteriores.
/opt/slices_build/build.py a partir de la especificación /_shared/slices/motivation-level.json — para cambiar esta página, edita la especificación y vuelve a ejecutar el generador; nunca edites el HTML a mano.