Add monthly MVP backend calculation
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user