Ir al contenido

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ímiteEsencialProEnterprise
Atletas40IlimitadoIlimitado
Sub-equipos2IlimitadoIlimitado
Colaboradores (staff)5IlimitadoIlimitado
Historial24 mesesIlimitadoIlimitado
Jugadores en scouting150IlimitadoIlimitado

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):

FeatureEsencialPro / 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).

  • 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).
  • 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 flagDó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 flagEstado real
custom_dashboardNo hay capa de personalización de dashboards.
excel_exportSolo importa Excel/CSV, no exporta.
ai_post_injury_analysisNo hay análisis IA específico post-lesión.
ai_anomaly_detectionNo hay detección automática de anomalías.
ai_natural_language_insightsNo hay insights en lenguaje natural.
wearables_integrationNo hay integración directa con Garmin/WHOOP/Catapult/etc.
api_readNo 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.

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.

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).