Add monthly MVP backend calculation

This commit is contained in:
devRaGonSa
2026-03-24 09:52:12 +01:00
parent 26b0590696
commit 1933aeeb8d
4 changed files with 376 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
# TASK-067-monthly-mvp-ranking-backend-calculation
## Goal
Implementar en backend el cálculo base de la V1 del ranking mensual MVP usando la fórmula y reglas definidas en docs/monthly-mvp-ranking-scoring-design.md, apoyándose únicamente en métricas ya persistidas y fiables.
## Context
La auditoría y el diseño de scoring ya están cerrados. La V1 del ranking mensual MVP debe construirse con:
- kills
- support
- time played
- KPM derivado
- KDA derivado
- umbrales de elegibilidad
- penalización por teamkills opcional
- desempates deterministas
Antes de exponerlo en snapshots o UI, hace falta implementar el cálculo mensual real en backend de forma clara, trazable y compatible con servidor individual y all-servers.
## Steps
1. Revisar docs/monthly-player-ranking-data-audit.md y docs/monthly-mvp-ranking-scoring-design.md.
2. Implementar la lógica de cálculo del ranking mensual MVP según la fórmula aprobada.
3. Aplicar correctamente:
- métricas incluidas
- pesos
- normalización
- mínimos de elegibilidad
- penalización por teamkills si así quedó definida
- desempates
4. Soportar cálculo para:
- un servidor concreto
- all-servers
5. Dejar el resultado estructurado para poder serializarlo después en snapshots o payloads.
6. Mantener clara la separación entre:
- ranking mensual MVP V1
- leaderboards mensuales simples por métrica ya existentes
7. No exponer todavía UI nueva en esta task.
8. Documentar brevemente la parte backend necesaria.
9. Al completar la implementación:
- dejar el repositorio consistente
- hacer commit
- hacer push al remoto si el entorno lo permite
## Files to Read First
- AGENTS.md
- docs/monthly-player-ranking-data-audit.md
- docs/monthly-mvp-ranking-scoring-design.md
- backend/README.md
- backend/app/historical_storage.py
- backend/app/historical_models.py
- backend/app/payloads.py
- backend/app/routes.py
- backend/app/historical_snapshots.py
## Expected Files to Modify
- backend/app/historical_storage.py
- backend/app/payloads.py
- opcionalmente nuevos módulos si mejoran claridad, por ejemplo:
- backend/app/monthly_mvp.py
- backend/app/monthly_mvp_scoring.py
- backend/README.md
- opcionalmente docs/decisions.md si hace falta fijar una decisión técnica menor
## Constraints
- No incluir métricas no persistidas o no confirmadas.
- No romper los rankings mensuales ya existentes por kills, muertes, soporte y 100+ kills.
- No crear todavía UI en esta task.
- No hacer cambios destructivos.
- Mantener el trabajo centrado en el cálculo backend del monthly MVP V1.
## Validation
- Existe un cálculo mensual MVP funcional en backend.
- Soporta servidor individual y all-servers.
- Respeta la fórmula y elegibilidad definidas en el diseño.
- No rompe los leaderboards mensuales existentes.
- Los cambios quedan committeados y se hace push si el entorno lo permite.
## Change Budget
- Preferir menos de 6 archivos modificados o creados.
- Preferir menos de 260 líneas cambiadas.