BookinglyTech News
Software

Kingpin unifica su algoritmo de ranking para corregir sesgos en el feed

La plataforma detectó que dos mecanismos de puntuación divergentes permitían comprar posicionamiento permanente con dinero.

2 min de lecturaDev.to0 vistas

Kingpin ha corregido una discrepancia en su motor de ranking que permitía a los anunciantes mantener posiciones de privilegio en su página principal (/board) independientemente de la interacción de la comunidad. Mientras el feed de contenido (/feed) usaba una fórmula donde los votos de la comunidad podían desplazar a un producto, el tablero principal dependía exclusivamente de la inversión económica con un decaimiento diario del 5%.

El problema no era un fallo malicioso, sino un residuo arquitectónico. El sistema de tableros data de las primeras fases de la plataforma, mientras que el feed llegó con el pivote posterior. Al no retirar la lógica antigua, el producto mantenía una contradicción central: prometía que la comunidad decidía quién estaba arriba, pero en la superficie más visitada el dinero seguía comprando un puesto fijo. La solución ha sido pasar ambos sistemas por la misma función de clasificación, eliminando la divergencia.

Decaimiento versus indiferencia

Durante la refactorización, el equipo evaluó eliminar el decaimiento automático (decay) por considerar que los votos negativos cumplían la misma función. La conclusión final fue que no es así. Un voto negativo responde a la pregunta "¿esto es malo?", lo cual requiere una acción humana activa. El decaimiento responde a "¿por qué sigues aquí si pagaste hace meses?", operando sin intervención. La brecha entre ambos conceptos es la indiferencia: los usuarios rara vez votan en contra de un producto solo por ser antiguo, pero sí lo ignoran. Sin decaimiento, la estrategia óptima sería pagar una vez y mantenerse en el primer puesto eternamente sin molestar a nadie, rompiendo la promesa de la plataforma.

Además, el decaimiento es la razón de ser del modelo de "refuel" (renovación de anuncios). Si las posiciones no se erosionan con el tiempo, la mecánica de pujas recurrentes pierde sentido. Por ahora, dado el bajo volumen de votos, el decaimiento permanece desactivado por defecto mediante la bandera FLAG_DECAY, activándose solo cuando la tracción de la comunidad justifique su uso manual.

Límites a los fundadores

Segunda decisión clave: prohibir que los fundadores voten. Al permitir que los pagos muevan la posición en el tablero principal, permitir que competidores paguen para votar habría convertido el sistema en una guerra proxy. La regla es estricta: ningún fundador puede votar, ni siquiera en su propio listado. A diferencia de otros filtros de seguridad que fallan en silencio para no dar pistas a bots, esta restricción devuelve un error 403 explícito, ya que es una política pública y no una medida de detección.

Este caso ilustra bien los riesgos del deuda técnica en sistemas de ranking. Lo que parece redundante a menudo responde a preguntas distintas. La lección operativa es clara: antes de eliminar una lógica que aparece duplicada, hay que validar qué problema específico resuelve cada capa, especialmente si hay dependencias económicas o de UX que dependen de ese comportamiento residual.

El log de desarrollo completo se encuentra en el blog de Kingpin.