Planes y features
CÉNIT se vende en tres planes: esencial, pro y enterprise.
Esta página describe el alcance real (qué está implementado) y
distingue lo prometido del roadmap. La fuente de verdad técnica vive
en lib/plans.ts
y se audita contra el código.
Límites por plan
Sección titulada «Límites por plan»| Límite | Esencial | Pro | Enterprise |
|---|---|---|---|
| Atletas | 40 | Ilimitado | Ilimitado |
| Sub-equipos | 2 | Ilimitado | Ilimitado |
| Colaboradores (staff) | 5 | Ilimitado | Ilimitado |
| Historial | 24 meses | Ilimitado | Ilimitado |
| Jugadores en scouting | 150 | Ilimitado | Ilimitado |
El plan expired reduce todos los límites a 0 y redirige a
/upgrade?expired=true.
Diferencias funcionales reales — esencial vs pro/ent
Sección titulada «Diferencias funcionales reales — esencial vs pro/ent»Más allá de los límites numéricos, el esencial pierde lo
siguiente respecto a pro/enterprise (según PLAN_FEATURES en
lib/plans.ts):
| Feature | Esencial | Pro / Enterprise |
|---|---|---|
Módulo de Psicología (module_psychology) | ❌ | ✅ |
Comparaciones de temporada (season_comparisons) | ❌ (*) | ✅ |
Dashboards personalizados (custom_dashboard) | ❌ (no implementado) | ✅ (no implementado) |
Branding custom (colores, logo, slug) (custom_branding) | ❌ (*) | ✅ |
| Recomendación IA del Risk Advisor | ❌ (texto estático) | ✅ (Anthropic SDK) |
Excel export (excel_export) | ✅ (no implementado) | ✅ (no implementado) |
(*) Sin gate hoy — el código no chequea el flag, así que el cliente esencial puede usarlas sin pagar (ver “riesgo comercial conocido” más abajo).
Los módulos de Fisio y Nutrición sí están en esencial (module_physio
y module_nutrition = true).
Features por plan — estado real
Sección titulada «Features por plan — estado real»Implementadas en todos los planes
Sección titulada «Implementadas en todos los planes»- Importación CSV de GPS (
gps_csv_upload). - ACWR básico sobre distancia (
gps_acwr_basic). - Predicción de planificación multi-métrica (
gps_predictive_planning). - Hooper diario, mapa de dolor corporal y links móviles de wellness
(
wellness_hooper,wellness_body_map,wellness_mobile_links). - Risk Advisor con cálculo de score (
risk_advisor). La recomendación con IA está restringida a pro/enterprise; esencial recibe texto estático. - Radar charts (
radar_charts). - Export a PDF (
pdf_export). - Vista y edición de colaboradores (
collaborator_view,collaborator_edit). - Módulo de Fisio (
module_physio) y Nutrición (module_nutrition).
Solo en pro y enterprise (implementadas)
Sección titulada «Solo en pro y enterprise (implementadas)»- Módulo de Psicología (
module_psychology). - Recomendación IA del Risk Advisor (gating dentro del módulo, no
expuesto como feature flag separado; ver
app/dashboard/riesgo/actions.ts).
Solo en pro y enterprise (sin gate hoy — riesgo comercial conocido)
Sección titulada «Solo en pro y enterprise (sin gate hoy — riesgo comercial conocido)»Estas features están implementadas pero el código no las gatea,
por lo que un cliente esencial puede usarlas sin pagar. Issue
abierto para agregar canUse guards.
| Feature flag | Dónde vive en UI |
|---|---|
season_comparisons | /dashboard/carga → tab Comparaciones |
custom_branding | /dashboard/settings → colores, logo, slug |
Prometidas en pro/enterprise pero NO implementadas (roadmap)
Sección titulada «Prometidas en pro/enterprise pero NO implementadas (roadmap)»Hoy mismo, vender pro o enterprise implica prometer estas funcionalidades que todavía no existen en el producto. Tratar como roadmap o sacar de la oferta:
| Feature flag | Estado real |
|---|---|
custom_dashboard | No hay capa de personalización de dashboards. |
excel_export | Solo importa Excel/CSV, no exporta. |
ai_post_injury_analysis | No hay análisis IA específico post-lesión. |
ai_anomaly_detection | No hay detección automática de anomalías. |
ai_natural_language_insights | No hay insights en lenguaje natural. |
wearables_integration | No hay integración directa con Garmin/WHOOP/Catapult/etc. |
api_read | No hay API pública de lectura. |
excel_export figura como true en los tres planes pero no está
implementado en ninguno — solo hay importadores Excel, no exporters.
Pro vs Enterprise — diferenciador inexistente hoy
Sección titulada «Pro vs Enterprise — diferenciador inexistente hoy»lib/plans.ts define exactamente las mismas features para pro y
enterprise (todos los flags en true, mismos límites infinitos).
No hay diferenciador funcional entre ambos planes en el código. Si
Enterprise debería incluir SSO, audit logs, white-label fase 2 con
dominio propio o soporte dedicado, requiere decisión de producto y
SPEC.
Bug menor conocido
Sección titulada «Bug menor conocido»app/dashboard/medico/actions.ts:131 gatea con module_physio cuando
debería ser module_medical (que no existe en la lista de
features de lib/plans.ts). Sin impacto comercial inmediato (porque
module_physio está en true para esencial/pro/ent), pero está
pendiente de corrección.
Billing self-service
Sección titulada «Billing self-service»La UI de auto-gestión de planes (/upgrade) está mergeada pero el
handler GET /api/stripe/checkout que referencia sigue standby
hasta que se configuren STRIPE_PRICE_ID_PRO y
STRIPE_PRICE_ID_ENTERPRISE en Workers Secrets. Mientras tanto, los
upgrades se hacen manualmente desde el panel de superadmin. Ver
Planes & Billing (transversal) y
/upgrade (comercial).