Сон
Провал из карточки Сна на главном экране. Этот же файл держит определение метрики — формулу, контрибьютеры и пресентацию.
Карточка (превью на главном)
Заголовок раздела «Карточка (превью на главном)»Скор 0–100 · общая длительность · средний ночной пульс · горизонтальный микро-таймлайн фаз.
Макет детального экрана
Заголовок раздела «Макет детального экрана»┌──────────────────────────────────────────────────┐│ ││ 🌙 Сон ││ ││ 87 │ ← герой: Sleep Score│ ✨ Восстанавливающий │ ярлык зоны│ 7ч 23м · 23:14 → 06:37 │ под-строка│ ││ ┌──────────────────────────────────────────┐ ││ │ 💡 Глубокий сон выше нормы (24%) — │ │ ← рекомендация│ │ ночь дала полноценный физический │ │ про эту ночь│ │ ресет. День подходит для интенсивных │ │ конкретно│ │ нагрузок. │ ││ └──────────────────────────────────────────┘ ││ ││ ─────────────────────────────────────────────── ││ ИДЕАЛЬНЫЙ СОН vs МОЙ СОН ││ [двойная диаграмма распределения фаз — ││ моя ночь рядом с целевым шаблоном по возрасту] ││ ││ ─────────────────────────────────────────────── ││ КОНТРИБЬЮТЕРЫ ││ Длительность ████████░░ 82 ││ Эффективность █████████░ 91 ││ Спокойствие ███████░░░ 74 ││ REM ████████░░ 85 ││ Глубокий █████████░ 93 ││ Засыпание ██████████ 98 ││ Тайминг ███████░░░ 72 ││ ││ ─────────────────────────────────────────────── ││ ФАЗЫ СНА ││ [гипнограмма 23:14 → 06:37: Awake/REM/Light/ ││ Deep, ось времени, легенда снизу] ││ ││ ─────────────────────────────────────────────── ││ КЛЮЧЕВЫЕ МЕТРИКИ ││ Общий сон 7ч 23м ││ В кровати 7ч 58м ││ Эффективность 93% ││ Пульс восстановления 52 уд/мин · 03:42 ││ Долг сна (7 дней) −1ч 15м ││ ││ ─────────────────────────────────────────────── ││ НИЗКОУРОВНЕВЫЕ МЕТРИКИ ││ HRV ночью 64 мс (+5% от нормы) ││ Пульс мин / средн 49 / 58 уд/мин ││ SpO2 средний 96% ││ │└──────────────────────────────────────────────────┘1. Герой — Sleep Score
Заголовок раздела «1. Герой — Sleep Score»Одна цифра 0–100 — итог формулы. Под ней:
- Ярлык зоны: 💎 Образцовый (90–100) / ✨ Восстанавливающий (75–89) / 💚 Достаточный (60–74) / 🟡 Лёгкий (45–59) / 🟠 Прерывистый (<45)
- Под-строка: общая длительность · окно сна (засыпание → пробуждение)
2. Рекомендация про эту ночь
Заголовок раздела «2. Рекомендация про эту ночь»Одно предложение, 1–2 строки. Не общий совет, а конкретная привязка к последней ночи: какой контрибьютер выстрелил выше/ниже нормы и что это значит для дня.
Триггеры (приоритет сверху вниз — берём первый сработавший):
- Deep < 13% → «Глубокого сна мало, физическое восстановление неполное — день под лёгкую нагрузку»
- REM < 18% → «REM ниже нормы — память и эмоциональный ресет недополучили, избегайте сложных решений до полудня»
- Latency > 30 мин → «Долго засыпали — вечером уберите экраны и кофе после 14:00»
- Efficiency < 85% → «Просыпались часто — проверьте температуру в спальне и поздние приёмы пищи»
- Timing сдвинут > 1ч → «Время отхода ко сну плавает — циркадный ритм размывается»
- Всё в норме → конкретная похвала про самый сильный контрибьютер
Логика «один совет → одно действие» — общая для всего приложения (см. 03-home.md).
3. Идеальный сон vs мой сон
Заголовок раздела «3. Идеальный сон vs мой сон»Визуальное сравнение распределения фаз: «как должно быть для возраста/пола» рядом с «как было сегодня». Не ругаем — показываем форму.
Идеальный шаблон по возрастным когортам (упрощённо, источник — AASM):
- 18–25: Deep 16–20%, REM 22–25%, Light 50–55%
- 26–45: Deep 13–18%, REM 20–24%, Light 52–58%
- 46–65: Deep 10–15%, REM 18–22%, Light 55–62%
4. Контрибьютеры
Заголовок раздела «4. Контрибьютеры»Семь компонентов формулы, каждый — отдельный 0–100 балл. Тап по контрибьютеру → шторка с описанием, нормой и тем, что подтянуть.
| Контрибьютер | Что измеряет | Целевая норма | Вес в формуле |
|---|---|---|---|
| Длительность | Общее время сна | 7–9ч | 0.25 |
| Эффективность | Сон / время в кровати | ≥ 90% | 0.15 |
| Спокойствие (Restfulness) | WASO + микропробуждения + двигательная активность | WASO < 20 мин | 0.10 |
| REM | Доля REM в общем сне | 20–25% | 0.20 |
| Глубокий | Доля Deep в общем сне | 13–23% | 0.20 |
| Засыпание (Latency) | Время от ложусь → засыпаю | 10–20 мин | 0.05 |
| Тайминг | Стабильность времени отхода ко сну (σ за 7 дней) | σ < 30 мин | 0.05 |
Спокойствие — то, что Oura называет Restfulness: интегрирует WASO, число микропробуждений и двигательную активность ночью в один скор. Клинический маркер фрагментации сна.
Тайминг — про регулярность, не про «правильное» время. Сова с устойчивым 02:00 → 10:00 получает высокий тайминг.
5. Гипнограмма
Заголовок раздела «5. Гипнограмма»Стандартный таймлайн фаз: Awake / REM / Light / Deep по оси времени. Ось — реальные часы сна (не «от 0»), легенда снизу. Тап на участок — длительность фазы и доля.
6. Ключевые метрики
Заголовок раздела «6. Ключевые метрики»| Метрика | Что это | Зачем |
|---|---|---|
| Общий сон | Сумма Light + Deep + REM | Базовая длительность |
| В кровати | От ложусь → встаю | Включает latency и WASO |
| Эффективность | Общий сон / В кровати | < 85% — фрагментация |
| Пульс восстановления | Минимальный ночной HR + время его достижения | Чем раньше и ниже, тем глубже парасимпатический отдых. Норма — минимум в первой половине ночи |
| Долг сна | Кумулятивный дефицит за 7 дней vs персональная цель | Превышение 5ч за неделю — фактор риска для иммунитета и решений |
Персональная цель сна — берётся из онбординга, корректируется по факту: если 14 дней подряд естественно спите 7ч и Sleep Score ≥ 80, цель = 7ч. Не навязываем «надо 8».
Пульс восстановления ≠ Heart Rate Recovery после нагрузки. Здесь это абсолютный минимум HR за ночь и его тайминг — индикатор глубины ночного восстановления. Если минимум смещается к утру — ВНС не успевает переключиться, сигнал стресса/алкоголя/позднего ужина.
7. Низкоуровневые метрики
Заголовок раздела «7. Низкоуровневые метрики»Сворачиваемый блок «Подробности» — для тех, кто хочет цифры под капотом. Не участвуют в формуле напрямую (HRV/RHR кормят Энергию, см. 07-energy-detail.md), но видны здесь для контекста ночи.
| Метрика | Источник | Подача |
|---|---|---|
| HRV ночью | RMSSD из RR-интервалов в фазе глубокого сна | Абсолютное значение + дельта от 14-дневного baseline |
| Пульс мин / средний | Минимальный и средний HR за окно сна | Две цифры в строке |
| SpO2 средний | Средняя сатурация за ночь | Одна цифра + флаг, если < 92% |
Дополнительно в этом блоке (если данные есть):
- Температура: дельта ночной температуры от персонального baseline
- Частота дыхания: средняя за ночь
- Эпизоды десатурации SpO2 < 90% (маркер апноэ — без диагноза, как фактический показатель)
Формула Sleep Score (0–100)
Заголовок раздела «Формула Sleep Score (0–100)»Sleep Score = Длительность × 0.25 (цель: 7–9ч, либо персональная цель) Глубокий % × 0.20 (цель: 13–23%) REM % × 0.20 (цель: 20–25%) Эффективность × 0.15 Спокойствие × 0.10 (WASO + фрагментация) Тайминг × 0.05 (σ времени отхода за 7 дней) Засыпание × 0.05 (latency)Каждый компонент сначала нормализуется в 0–100 относительно своей нормы (плавная функция, не cliff), потом суммируется по весам.
Фильтры и история
Заголовок раздела «Фильтры и история»- День / Неделя / Месяц
- Месячный режим — календарная тепловая карта (цвет ячейки = Sleep Score)
- Тап на день в истории → этот же экран за тот день
Empty-state
Заголовок раздела «Empty-state»- До 7 ночей — Долг сна и Тайминг скрыты (плашка «Накапливаем данные»)
- До 14 ночей — HRV-дельта и Пульс восстановления показаны без сравнения с baseline
- Идеальный шаблон фаз доступен сразу (зависит только от возраста, не от истории)
Источники данных (SDK)
Заголовок раздела «Источники данных (SDK)»QCSleepModel— фазы, длительность, latency, WASOQCSchedualHeartRateModel— ночной HR (мин/средн, кривая для пульса восстановления)QCHRVModel— HRV в фазе глубокого снаQCBloodOxygenModel— SpO2 ночьюQCThreeValueTemperatureModel— ночная температураQCBreatheRateModel— частота дыхания (если доступна)
Открытые вопросы
Заголовок раздела «Открытые вопросы»- Возрастные когорты для «идеального сна» — упрощённая разбивка из AASM. Нужно ли давать пользователю менять её вручную (например, для хронических сов)?
- Восприятие «Долга сна» — для части аудитории отрицательная цифра демотивирует. Возможно, прятать при долге < 30 мин и показывать только тренд за неделю.
- Спокойствие vs WASO — термин «Restfulness/Спокойствие» более тёплый, но менее технически точный. Проверить на custdev, не путает ли с «расслабленностью» из индикатора Стресса.
- Пульс восстановления как отдельный контрибьютер? — сейчас он только в ключевых метриках. Если данные покажут сильную корреляцию с субъективным восстановлением — может стать 8-м контрибьютером.