06 9 planes y capacidades - lfnavarroj1/sport-app-platform GitHub Wiki

Planes y capacidades de SportApp

Propósito

SportApp ofrece tres niveles acumulativos para deportistas. El catálogo se precarga mediante una migración versionada antes de habilitar Gestión de afiliación; no existe una HU, pantalla ni API para administrar los planes en producción.

flowchart LR
    F["Gratuito<br/>Funciones esenciales"]
    I["Intermedio<br/>Gratuito + seguimiento en sesión"]
    P["Premium<br/>Intermedio + servicios profesionales"]
    F --> I --> P
Loading

Comparación general

Característica Gratuito Intermedio Premium
Código FREE INTERMEDIATE PREMIUM
Asignación automática al registrarse Sí, solo athlete No No
Precio de referencia en COP 0 2.400 mensual; 7.200 trimestral; 28.800 anual 4.800 mensual; 14.400 trimestral; 57.600 anual
Periodicidad NONE Mensual, trimestral o anual Mensual, trimestral o anual
Seleccionable actualmente Sí No, hasta ratificar la propuesta e implementar el cobro No, hasta ratificar la propuesta e implementar el cobro
Capacidades del nivel anterior No aplica Todas las de Gratuito Todas las de Intermedio

Los valores de los planes pagos son una propuesta económica base, expresada antes de impuestos, comisiones de pasarela o tienda, soporte, mercadeo y otros costos comerciales. No deben precargarse como valores definitivos hasta su aprobación por el responsable del producto.

Modelo económico de las membresías

Supuestos de planeación

Variable Valor utilizado
Usuarios deportistas activos esperados 5.000
Usuarios FREE 70 % = 3.500
Usuarios INTERMEDIATE 20 % = 1.000
Usuarios PREMIUM 10 % = 500
Usuarios que pagan 1.500 = 30 %
Infraestructura mensual central USD 820 = COP 3.280.000
Presupuesto mensual conservador USD 1.000 = COP 4.000.000
Conversión de planeación COP 4.000 por USD
Margen operativo objetivo 15 % de los ingresos por membresías
Relación de precio elegida Premium cuesta dos veces el plan Intermedio

El cálculo supone que los 5.000 usuarios son deportistas activos sujetos a esta distribución. Si el total incluye organizadores o profesionales, o cambia la conversión de planes pagos, los precios deben recalcularse.

pie showData
    title Distribución esperada de 5.000 deportistas
    "Gratuito: 3.500" : 3500
    "Intermedio: 1.000" : 1000
    "Premium: 500" : 500
Loading

Fórmula del margen

El objetivo se interpreta como un margen del 15 % sobre los ingresos, es decir:

margen = (ingresos - costo) / ingresos
ingresos mínimos = costo / (1 - 0,15)

Con el presupuesto conservador de COP 4.000.000 mensuales:

Ingresos mínimos = COP 4.000.000 / 0,85
                 = COP 4.705.882 mensuales

Sumar solamente 15 % al costo produciría un margen de 13,04 %, no de 15 %. Por ello se divide el costo entre 0,85.

Obtención del precio mensual

Para reflejar las capacidades acumulativas se adopta como hipótesis inicial que Premium cuesta el doble de Intermedio. Si I es el precio mensual de Intermedio:

1.000 × I + 500 × (2 × I) = COP 4.705.882
2.000 × I = COP 4.705.882
I exacto = COP 2.352,94
Premium exacto = COP 4.705,88

Los valores se redondean hacia arriba a COP 2.400 para Intermedio y COP 4.800 para Premium. El redondeo evita quedar por debajo del margen objetivo.

Precio por periodicidad

La versión inicial ofrece los tres ciclos sin descuento. El valor trimestral equivale a tres mensualidades y el anual a doce; cualquier descuento futuro debe recalcular cobertura y margen.

Plan Mensual Trimestral, cobro anticipado Anual, cobro anticipado
Gratuito COP 0 No aplica No aplica
Intermedio COP 2.400 COP 7.200 COP 28.800
Premium COP 4.800 COP 14.400 COP 57.600

La periodicidad elegida cambia el momento del cobro, pero para los análisis mensuales el ingreso trimestral o anual se reconoce proporcionalmente durante su vigencia.

Resultado mensual esperado

Concepto Operación Resultado mensual
Ingreso Intermedio 1.000 × COP 2.400 COP 2.400.000
Ingreso Premium 500 × COP 4.800 COP 2.400.000
Ingresos totales por membresías Suma de planes pagos COP 4.800.000 / USD 1.200
Infraestructura presupuestada Valor conservador COP 4.000.000 / USD 1.000
Utilidad operativa estimada Ingresos menos infraestructura COP 800.000 / USD 200
Margen sobre membresías COP 800.000 / COP 4.800.000 16,67 %

Con el costo central de USD 820, el mismo precio generaría COP 1.520.000 de utilidad y un margen de 31,67 %. Se conserva el precio calculado sobre USD 1.000 para proteger la operación frente a variaciones normales del piloto.

Punto de equilibrio y sensibilidad

Con la mezcla prevista, cada usuario registrado genera en promedio COP 960 mensuales:

(20 % × COP 2.400) + (10 % × COP 4.800) = COP 960

El costo conservador se cubre desde aproximadamente 4.167 usuarios con la misma distribución. Para conservar al menos 15 % de margen se requieren aproximadamente 4.902 usuarios; la proyección de 5.000 supera ese mínimo.

Infraestructura mensual Intermedio mínimo aproximado Premium mínimo aproximado Decisión
USD 820 / COP 3.280.000 COP 1.930 COP 3.860 Cubierto por los precios propuestos
USD 1.000 / COP 4.000.000 COP 2.353 COP 4.706 Base usada; se redondea a COP 2.400 y COP 4.800
USD 1.550 / COP 6.200.000 COP 3.647 COP 7.294 Requeriría aproximadamente COP 3.700 y COP 7.400

El escenario de USD 1.550 corresponde al clúster GKE escalado hasta nueve nodos. Por tanto, el autoescalado, la factura real y la conversión de planes deben revisarse mensualmente. Consulte Costos estimados de producción en GCP.

Alcance y exclusiones del precio

La propuesta cubre infraestructura de producción y el margen indicado. Todavía no incorpora:

  • impuestos y retenciones aplicables;
  • comisión de pasarela de pagos o de las tiendas móviles;
  • desarrollo, soporte al usuario, mercadeo y administración;
  • devoluciones, fraude, mora o períodos promocionales;
  • costos de profesionales, consultas o sesiones reservadas desde Premium;
  • crecimiento de infraestructura por encima del escenario presupuestado.

Premium concede acceso a las capacidades de búsqueda y programación; una consulta o sesión profesional puede tener un precio independiente. Antes de publicar los planes debe elaborarse una versión comercial que agregue los costos excluidos y confirme que el precio final continúa siendo viable para el mercado.

Implementación en el catálogo

Un mismo plan debe admitir tres ofertas de precio: MONTHLY, QUARTERLY y ANNUAL. Cada oferta conserva importe, moneda COP, duración, vigencia y condiciones. FREE mantiene precio cero y periodicidad NONE. La suscripción referencia tanto la versión del plan como la oferta aceptada para preservar la trazabilidad del cobro.

La precarga debe contener estas ofertas de manera versionada e idempotente. Un cambio posterior de precio o descuento crea una nueva versión u oferta vigente y no reescribe las condiciones aceptadas por suscripciones existentes.

Plan Gratuito

Es el plan predeterminado de todo deportista nuevo. Se activa automáticamente después del evento de registro y permite:

  • crear y sugerir planes de entrenamiento;
  • sugerir rutas y eventos deportivos;
  • sugerir acompañamiento, logística y rutinas de alimentación;
  • conectar Strava;
  • iniciar y finalizar un entrenamiento;
  • consultar el tablero, FTP y VO₂max;
  • consultar el calendario deportivo.

Durante la activación el canal muestra PROVISIONING; las capacidades solo se conceden al confirmar la suscripción ACTIVE.

Plan Intermedio

Hereda todo el plan Gratuito y añade:

  • monitoreo del entrenamiento en tiempo real;
  • conexión de dispositivos de medición;
  • recordatorios de alimentación e hidratación durante la sesión.

El cambio es explícito mediante HU016. La propuesta de precios y periodicidades ya tiene una base cuantitativa, pero el plan solo podrá publicarse cuando el responsable del producto la ratifique y estén aprobadas y precargadas la vigencia, los impuestos, el medio de pago y las condiciones de cambio, renovación y cancelación.

Plan Premium

Hereda todo el plan Intermedio y añade:

  • acceso a servicios médicos y deportivos;
  • programación de sesiones virtuales con profesionales.

El acceso al plan no garantiza la disponibilidad de un profesional o una agenda concreta; publicación, reserva y prestación mantienen las reglas del dominio Servicios.

Matriz de capacidades

Capacidad Código Gratuito Intermedio Premium HU
Crear planes de entrenamiento training.plan.manage Sí Sí Sí HU010
Sugerir rutas training.routes.suggest Sí Sí Sí HU026
Sugerir eventos events.suggest Sí Sí Sí HU027
Sugerir planes training.plans.suggest Sí Sí Sí HU028
Sugerir acompañamiento services.support.suggest Sí Sí Sí HU029
Sugerir alimentación nutrition.routines.suggest Sí Sí Sí HU030
Conectar Strava integrations.strava.connect Sí Sí Sí HU031
Registrar entrenamiento training.session.record Sí Sí Sí HU032
Consultar tablero training.dashboard.view Sí Sí Sí HU033
Consultar FTP/VO₂max training.metrics.ftp_vo2max Sí Sí Sí HU034
Consultar calendario calendar.sport.view Sí Sí Sí HU023, HU035
Monitorear en tiempo real training.realtime.monitor — Sí Sí HU036
Conectar dispositivos devices.measurement.connect — Sí Sí HU037
Recordatorios durante sesión nutrition.session.reminders — Sí Sí HU038
Servicios médicos/deportivos services.sports_medicine.access — — Sí HU017
Sesiones virtuales services.virtual_sessions.schedule — — Sí HU040

HU039 pertenece al organizador y no es un beneficio de la suscripción del deportista.

Presentación y autorización

  • Los clientes consultan códigos de capacidad; no comparan nombres de plan.
  • Cada capacidad vigente del deportista aparece como una opción navegable en el menú lateral izquierdo.
  • Una función de un nivel superior se explica en Comparar planes, pero no aparece como opción operativa del menú.
  • Una función ajena al rol o sensible se oculta.
  • La autorización efectiva se repite en BFF y microservicio.
  • La ausencia de capacidad produce 403 capability_required.

Menú lateral acumulativo

flowchart TB
    B["Opciones base<br/>Inicio · Mi perfil · Mi plan · Cerrar sesión"]
    F["FREE<br/>11 opciones funcionales"]
    I["INTERMEDIATE<br/>+ 3 opciones"]
    P["PREMIUM<br/>+ 2 opciones"]
    B --> F --> I --> P
Loading
Nivel Opciones funcionales visibles en el menú lateral
FREE Planes de entrenamiento; Rutas sugeridas; Eventos sugeridos; Entrenamientos sugeridos; Acompañamiento y logística; Rutinas de alimentación; Strava; Registrar entrenamiento; Tablero de entrenamiento; FTP y VO₂max; Calendario deportivo.
INTERMEDIATE Todas las opciones FREE, más Monitoreo en tiempo real, Dispositivos de medición y Recordatorios durante sesión.
PREMIUM Todas las opciones INTERMEDIATE, más Servicios médicos y deportivos y Sesiones virtuales.

El menú se reconstruye al iniciar sesión, al completar el aprovisionamiento y después de un cambio de plan. Si el usuario baja de nivel se retiran las opciones no autorizadas, se invalidan sus rutas abiertas y se navega a una pantalla permitida. El botón Atrás o una URL directa no evitan las guardas.

El BFF entrega rol, estado de suscripción, versión y códigos de capacidad. El cliente conserva un único registro de navegación con etiqueta, icono, orden, ruta y capacidad requerida; el backend no entrega rutas ni componentes ejecutables.

Precarga y evolución

La migración incluye código, nombre, descripción, orden, estado, versión, vigencia, ofertas de precio por periodicidad, moneda, textos, capacidades y límites. Es transaccional e idempotente y se ejecuta antes de habilitar las réplicas. La aplicación no queda lista si el catálogo está incompleto.

Cualquier cambio futuro se realiza mediante una migración revisada. Cuando cambia una condición aceptada se crea una nueva versión del plan; no se modifica silenciosamente una versión que ya tiene suscripciones.

Trazabilidad

  • ADR-024: plan gratuito automático y autorización por capacidades.
  • HU001: registro y afiliación gratuita automática.
  • HU016: selección o cambio explícito de plan.
  • Costos de infraestructura: Costos estimados de producción en GCP.
  • Documentación técnica detallada: arquitectura/planes/.
  • Especificación del menú: arquitectura/planes/05-menu-lateral-por-plan.md.
⚠️ **GitHub.com Fallback** ⚠️