The Cap Room
Una consola de front office de la NBA para hojas salariales, validación explicable de canjes entre dos equipos y evaluación de jugadores.

En vivo en Vercel con código público. Los datos actuales de las plantillas están fechados 2026-08-04.
La idea
The Cap Room convierte el denso reglamento del CBA en una consola para equipos de la NBA. Combina hojas salariales, contexto de jugadores y validación de canjes entre dos equipos, para mostrar tanto el veredicto como el razonamiento que lo sustenta.
Lo que construí
El núcleo es un motor puro en TypeScript para cálculos salariales, compensación de salarios, restricciones de los aprons, condiciones que activan el hard cap, límites de plantilla, efectivo y reglas sobre picks. No importa nada de la interfaz y tiene 44 pruebas unitarias, así que las mismas reglas impulsan la API y la experiencia de usuario.
La Máquina de Canjes produce un Rule Ledger en vez de limitarse a marcar un canje como legal o ilegal. Cada validación muestra su estado y sus cálculos en lenguaje claro, mientras la propuesta completa vive en el URL como un enlace reproducible. Los datos iniciales se validan con esquemas y el motor vuelve a sumar cada plantilla para compararla con su total publicado antes del build.
Lo difícil
01
Reglas en prosa como validaciones componibles
El CBA describe condiciones que interactúan, no un árbol de decisión listo para usar. El motor modela esas condiciones como validaciones pequeñas que pueden reportar pase, fallo, advertencia y números de respaldo.
02
Evidencia con cada veredicto
Una herramienta de canjes necesita explicar qué cambió el resultado. El Rule Ledger hace visibles los límites salariales, restricciones de aprons, propiedad de picks y consecuencias de hard cap para quien evalúa el acuerdo.
03
Datos fechados con límites claros
Los datos de las plantillas cambian rápido en la temporada baja. La app usa una copia fechada con enlaces a las fuentes y muestra valores desconocidos en vez de llenar vacíos con estimaciones.
Lo que sigue
Actualizar los datos de las plantillas y ampliar la cobertura de picks y canjes.