Перейти к содержимому

Здоровье

Провал по индикатору Здоровья на главном экране. У Здоровья нет своей карточки в блоке 4 — метрика медленная (меняется на ±1–2% в день), ежедневная карточка с числом была бы визуальным шумом.

Что показывается (здесь есть цифры и графики)

Заголовок раздела «Что показывается (здесь есть цифры и графики)»
  • Тренд скора за 30 / 90 дней
  • Разбивка по 4 компонентам формулы
  • Сравнение с личным максимумом за всё время
  • Контекст: «последние 2 недели ниже нормы — обратите внимание»
  • Под-блок Lumo Age (см. ниже)

Формула (внутренняя, не показывается пользователю напрямую)

Заголовок раздела «Формула (внутренняя, не показывается пользователю напрямую)»
Здоровье_score =
Среднее Восстановление за 14 дней × 0.40
(HRV + RHR vs baseline, ночные значения)
Средний Стресс за 14 дней × 0.30
(дневные HRV + sedentary penalty)
Среднее Качество сна за 14 дней × 0.20
(Deep + REM + Efficiency)
Активность за 14 дней × 0.10
(не перегрузился / не недобрал)

Числовой скор конвертируется в ярлык: 💎 Исключительное / ✨ Сильное / 💚 Устойчивое / 🟡 Умеренное / 🟠 Ограниченное. Пороги — TBD.

  • Минимум 10 полных дней — до этого индикатор скрыт (плашка «Накапливаем данные»)
  • Обновление — раз в сутки утром
  • Стресс и Энергия могут шуметь (одна плохая ночь, тяжёлый день) — Здоровье показывает устойчивый тренд
  • Ранний маркер выгорания: здоровый организм терпит месяцы перегрузки, потом резко сдаёт — медленная метрика ловит это за недели до срыва

Композитный индекс долгосрочного состояния, выраженный в годах относительно паспортного возраста. Живёт внутри этого экрана + тизер-строка на главном рядом с индикатором Здоровья.

Это не клинический биомаркер старения. Это reverse-fit к паспортному возрасту по сигналам ring — не GrimAge / PhenoAge / эпигенетические часы. Honest framing обязательно: формулировка «композитный индекс на сигналах кольца», не «ваш биологический возраст».

Lumo Age = chronological_age − Δ
Δ =
RHR_baseline_score × 0.40
(отклонение ночной RHR от ожидаемой для возраста/пола)
HRV_trend_score × 0.20
(RMSSD / SDNN из RR-интервалов, тренд за 30 дней
относительно референса по возрасту/полу)
Sleep_consistency_score × 0.20
(стабильность времени отхода ко сну + Deep%)
Activity_minutes_score × 0.10
(активные минуты в HR-зонах за неделю)
Temp_stability_score × 0.10
(отклонение ночной температуры от персонального baseline)
Δ ограничено диапазоном [−10; +10] лет.

Веса — черновые, нужна калибровка на референсной когорте (TBD).

  • Главное: дельта к паспортному (−3 года / +2 года), не абсолютный возраст
  • Подпись: абсолютный «Lumo Age 32»
  • Микрочарт тренда за 90 дней
  • Плашка под графиком: «±3 года — типичная погрешность композитных метрик»
  • Обновление: раз в неделю, не чаще (избегаем шума и эффекта «постарел за день»)
  • Опция в настройках: скрыть число, оставить только тренд (для тех, кому демотивирует)
  • Минимум 30 дней полных данных — до этого скрыто (плашка «Накапливаем данные»)
  • Baseline RHR / HRV / температуры формируется параллельно с Здоровьем (14 дней)
  • При перерывах ношения > 3 дней подряд — обновление паузится до накопления свежих 7 дней
  • QCRealOneKeyMeasureHeartRateModel.rri — RR-интервалы (1 Hz) для time-domain HRV
  • QCSchedualHeartRateModel — ночной RHR
  • QCSleepModel — фазы и время отхода ко сну
  • QCThreeValueTemperatureModel — температурный baseline
  • QCExerciseModel — активные минуты в HR-зонах

Альтернативный путь — оценка жёсткости артерий через PPG waveform features (rise time, dicrotic notch, augmentation index) → pulse wave velocity. Научно строже мульти-инпут модели (Oura Cardiovascular Age, Nature Comms 2025).

SDK формально отдаёт RAW PPG (QCBloodGlucoseHeartRateRawModel, каналы green / red / IR), но частота семплирования не задокументирована, в демо-приложении видно по-точечный апдейт, не непрерывный поток. Для морфологии нужно ≥100–200 Hz.

Вопросы вендору:

  • Какая реальная sample rate PPG в continuous-режиме?
  • Можно ли запросить непрерывный поток сэмплов (не агрегированный) и какова стоимость по батарее?
  • Есть ли референсные данные по точности PPG-сигнала (SNR)?

Если sample rate ≥100 Hz и батарея позволяет — Cardio Age заменит multi-input формулу как ядро Lumo Age. До ответа вендора не планируем.

  • Название «Здоровье» — возможно слишком претенциозное. Альтернативы: «Резерв», «Форма», «Устойчивость». Нужно custdev-тестирование.
  • Финальные ярлыки — черновые, прогнать через редактуру.
  • Веса в формуле Lumo Age — нужна калибровка на референсной когорте.
  • Custdev: не демотивирует ли «+5 лет к паспортному»? Может, показывать только при отрицательной дельте, а положительную — как «есть куда расти» без числа.